开发经验|小白应该如何学习MySQL

2023-11-14 22:59:38 浏览数 (2)

1 MySQL是什么?

  • MySQL是一个数据库管理系统
  • MySQL 数据库是关系型的
  • MySQL 软件是开源的
  • MySQL 数据库服务器非常快速、可靠、可扩展且易于使用且服务器在客户端/服务器或嵌入式系统中工作
  • ……

总结上面的话,简单来说,MySQL是一个开源的,快速、可靠、可扩展,嵌入式,关系型的数据库管理系统。

2 MySQL 的产品

MySQL有很多版本,我们耳熟能详的要数社区开源版本——MySQL Community (GPL) 。除了社区开源版本,其实MySQL官方还提供了如下版本:

  • MySQL企业版
  • MySQL标准版
  • MySQL经典版
  • MySQL 集群 CGE
  • MySQL 嵌入式 (OEM/ISV)

上面的具体内容,大家可以移步到官网查阅:https://www.mysql.com/products/

3 MySQL 8.0 产品差异

当前所有大多数用户,企业或者开发者使用的版本多数都是在8.0 的基础上做开发设计,也有一部分是在5.7.x的版本上做开发设计,无论哪一个类型的版本,都是可以的。截止到作者编写本文结束,MySQL最新版本为8.0.36。

备注:当前文档参考MySQL 8.0.30来测试,使用和编写。适用范围为MySQL 8.0 ~ MySQL 8.0.36,期间小版本的变化如下:

代码语言:javascript复制
MySQL 8.0.36 (Not yet released, General Availability)
MySQL 8.0.35 (2023-10-25, General Availability)
MySQL 8.0.34 (2023-07-18, General Availability)
MySQL 8.0.33 (2023-04-18, General Availability)
MySQL 8.0.32 (2023-01-17, General Availability)
MySQL 8.0.31 (2022-10-11, General Availability)
MySQL 8.0.30 (2022-07-26, General Availability)
MySQL 8.0.29 (2022-04-26, General Availability)
MySQL 8.0.28 中的变化(尚未发布,一般可用性)
MySQL 8.0.27 中的变化(尚未发布,一般可用性)
MySQL 8.0.26 (2021-07-20, General Availability) 的变化
MySQL 8.0.25 中的变化(2021-05-11,正式发布)
MySQL 8.0.24 中的变化(2021-04-20,正式发布)
MySQL 8.0.23 (2021-01-18, General Availability) 的变化
MySQL 8.0.22 (2020-10-19, General Availability) 的变化
MySQL 8.0.21 (2020-07-13, General Availability) 的变化
MySQL 8.0.20 (2020-04-27, General Availability) 的变化
MySQL 8.0.19 (2020-01-13, General Availability) 的变化
MySQL 8.0.18 的变化(2019-10-14,正式发布)
MySQL 8.0.17 的变化(2019-07-22,正式发布)
MySQL 8.0.16 (2019-04-25, General Availability) 的变化
MySQL 8.0.15 的变化(2019-02-01,正式发布)
MySQL 8.0.14 的变化(2019-01-21,正式发布)
MySQL 8.0.13 (2018-10-22, General Availability) 的变化
MySQL 8.0.12 的变化(2018-07-27,正式发布)
MySQL 8.0.11 (2018-04-19, General Availability) 的变化
MySQL 8.0.5 - 8.0.10 中的变化(跳过版本号)
MySQL 8.0.4 (2018-01-23, Release Candidate) 的变化
MySQL 8.0.3 (2017-09-21, Release Candidate) 的变化
MySQL 8.0.2 的变化(2017-07-17,发展里程碑)
MySQL 8.0.1 的变化(2017-04-10,发展里程碑)
MySQL 8.0.0 的变化(2016-09-12,发展里程碑)

4 MySQL名称的来源

据说,MySQL的名称来源由以下两个说法。

  • MySQL 这个名称来源于联合创始人的女儿my命名。
  • MySQL的徽标(MySQL Dolphin)来自于Sakila 起源于埃斯瓦蒂尼的当地语言 SiSwati。

5 MySQL的安装包

MySQL的大部份安装包都包含了服务器程序和客户端程序,不过在Linux环境下可以使用不同的.rpm包分别安装。例如下面就是在Linux环境的AARCH64架构上面的rpm安装包。

代码语言:javascript复制
# 连接工具包(必须)
mysql-community-client-8.0.30-1.el8.aarch64.rpm
mysql-community-client-debuginfo-8.0.30-1.el8.aarch64.rpm
# 插件包(一般不部署,如果使用到审计功能,需要部署)
mysql-community-client-plugins-8.0.30-1.el8.aarch64.rpm
mysql-community-client-plugins-debuginfo-8.0.30-1.el8.aarch64.rpm
# 公共程序包(必须)
mysql-community-common-8.0.30-1.el8.aarch64.rpm
mysql-community-debuginfo-8.0.30-1.el8.aarch64.rpm
mysql-community-debugsource-8.0.30-1.el8.aarch64.rpm
# 二次开发包(一般不部署)
mysql-community-devel-8.0.30-1.el8.aarch64.rpm
mysql-community-icu-data-files-8.0.30-1.el8.aarch64.rpm
# 库文件包(必须)
mysql-community-libs-8.0.30-1.el8.aarch64.rpm
# 库文件兼容包(一般不部署)
mysql-community-libs-debuginfo-8.0.30-1.el8.aarch64.rpm
# 服务程序包(必须)
mysql-community-server-8.0.30-1.el8.aarch64.rpm
mysql-community-server-debug-8.0.30-1.el8.aarch64.rpm
mysql-community-server-debug-debuginfo-8.0.30-1.el8.aarch64.rpm
mysql-community-server-debuginfo-8.0.30-1.el8.aarch64.rpm
# 测试包(一般不部署)
mysql-community-test-8.0.30-1.el8.aarch64.rpm
mysql-community-test-debuginfo-8.0.30-1.el8.aarch64.rpm

在安装后的默认路径如下:

Linux内核(MacOS、CentOS等)默认的安装路径为:/usr/local/mysql

windows上面则是C:Program FilesMySQLMySQL Server 8.0.30

在MacOS操作系统下,如果使用了HomeBrew来安装,则默认安装在/usr/local/Cellar/mysql/8.0.30路径下,brew也会将快捷启动方式放在环境变量下,关于Homebrew此文不在长说,会单独拉出一篇文章来讲。

再说一个个人习惯问题,通常情况下,我比较习惯使用英文词MySQL,而非小写的mysql来讲,我认为MySQL是标准写法,而mysql不是太标准,这个因人而异,不必太过于纠结。

6 如何启动MySQL应用程序

启动方式一般有两种,分别是手动启动和自动启动(也就是我们常说的服务)。一般正常启动如下图

6.1 Windows

  • 手动方式

直接找到bin目录下的可执行文件,双击即可启动

  • 服务方式

将MySQL注册为服务,然后启动服务,例如我想将我本机器的MySQL注册为服务,那么我首先找到MySQL的服务端程序安装目录位置:C:Program FilesMySQLMySQL Server 8.0.30binmysqld。然后执行下面的命令即可注册名称为MySQLServer的服务,且这个服务为自动启动:

"C:Program FilesMySQLMySQL Server 8.0.30binmysqld" --install MySQLServer

将MySQL注册为Windows的服务后,我们可以使用下面两个命令来启动和停止服务

代码语言:javascript复制
> net start MySQLServer
> net stop MySQLServer

6.2 MacOS

  • 手动方式

手动启动可以使用客户端程序,也可以进去目录下执行shell脚本。

  • 服务方式

如果使用了homebrew,可以执行下面的命令来启动服务、停止服务、重启服务

代码语言:javascript复制
brew services start mysql
brew services stop mysql
brew services restart mysql

6.3 CentOS、麒麟、UOS

这些操作系统执行方式同MacOS不同的是很多没有界面,我们可以使用下面的命令来操作。

代码语言:javascript复制
# systemctl方式
systemctl start mysqld
systemctl stop mysqld
systemctl status mysqld

# services
service mysqld start
service mysqld stop
service mysqld restart

7 如何连接MySQL服务器

当我们启动完成服务程序后,我们就可以使用客户端程序连接服务器了。在bin目录下面有很多可执行文件,比如mysql、mysqldump、mysqld、mysqladmin、mysqld_safe、mysqlcheck、mysqlbinlog。而我们需要的是mysql这个可执行文件。一般情况下,可以按照下面的标准命令来执行。

代码语言:javascript复制
mysql -h <host> -P <port> -u <user> -p [db_name]

解释下,mysql 是可执行程序,-h <host> 这种的是键值对,命令键为-h,<host>为值,下面的几个也是如此。我如果想登录到我自己MySQL服务器,则需要执行命令

代码语言:javascript复制
mysql -h localhost -P 3306 -u root -p
mysql -uroot -p123456
mysql -uroot -p
mysql -u root -p
mysql -p -u root -h local

登录成功如下图所示:

注意⚠️:

(1)这里需要留意下,如果密码这里是用-p,后面没有内容,回车后可以输入密码;如果这里后面有内容,必须紧紧跟随着-p键,否则会把-p后面的内容但做服务器来执行,这个在很多时候是一个坑点。

(2)关于顺序这块也没有多大关系,按照正确的键值输入就可以了。

好了,今日就先写到这里,明日见。


我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

0 人点赞