Linux安装MySQL过程详解(新手必看)
目前 MySQL 有四大版本,分别是社区版本(MySQL Community Server)、企业版本(MySQL Enterprise Edition)、集群版本(MySQL Cluster)和高级集群版本(MySQL Cluster CGE),具体说明如下:
1) 打开 MySQL 官网首页,单击“DOWNLOADS”按钮,如下图所示,进入下载页面。

图 1 单击“DOWNLOADS”按钮
2) 在下载页面中单击“MySQL Community(GPL)Downloads”链接,如下图所示:

图 2 单击“MySQL Community(GPL)Downloads”链接
3) 在打开的页面中单击“MySQL Community Server”链接,如下图所示:

图 3 单击“MySQL Community Server”链接
4) 在“General Availability(GA)Releases”选项卡中选择适合的版本。如果要在 Windows 平台下安装 MySQL,则推荐下载 MSI 安装程序。在 Windows 版 MySQL 下载页面中单击“Go to Download Page”按钮,如下图所示,进行下载。

图 4 单击“Go to Download Page”按钮
Windows 平台下有两种 MySQL 安装程序:

图 5 RPM软件包的一般格式
其中,el7 表示可以在 Red Hat 7.x、CentOS 7.x、CloudLinux 7.x 系统中安装软件包。
rpm 命令安装方式虽然方便,但是需要手动解决软件包的依赖问题,而 yum 命令安装方式可以解决这个问题。
本书采用 rpm 命令安装方式来安装 MySQL,需要先下载软件包,具体操作步骤为:进入 MySQL 下载页面,选择“Red Hat Enterprise Linux 8/Oracle Linux 8(x86,64-bit),RPM Bundle”选项,单击右侧的“Download”按钮,下载 MySQL RPM 软件包,如下图所示。

图 6 MySQL RPM软件包下载
下载完成后,解压缩软件包,如下图所示,矩形框中的软件包是抽取出来的软件包。

图 7 MySQL RPM软件包解压缩
如果服务器上不存在旧版本的软件包,则显示如下代码:
当前磁盘容量不够时,也可将 /opt 目录单独挂载到其他磁盘上使用。在这里我们把 MySQL 安装到 /opt 目录下(执行“pwd”命令可以查看工作目录,执行“ls”命令可以查看工作目录下的内容),如下所示。
在 /opt 目录下执行如下命令(必须按照以下顺序执行,因为下面的软件包会依赖上面的软件包):
如果我们没有检查 MySQL 依赖环境,那么在安装 mysql-community-server 时会报错。解释一下上述命令的含义:
如果在安装 MySQL 前没有卸载旧版本的软件包,则会报如下错误:
执行如下命令清除之前安装过的依赖:
需要注意的是,在安装过程中可能会由于 Linux 系统缺少依赖导致安装失败。例如,缺少 libaio 依赖会提示如下信息:
只需根据提示信息安装必要的依赖即可。执行如下命令安装 libaio 依赖:
上述代码表示 MySQL 已经完成安装,但并不代表安装过程中没有出现问题。执行“mysqladmin--version”命令测试 MySQL 是否安装成功。如果显示如下代码,则表示 MySQL 安装成功:
上述命令中加不加 .service 都可以,因为 mysqld 这个可执行文件就代表 MySQL 服务器端程序。运行这个可执行文件就可以直接启动一个服务器进程,结果如下所示。如果显示加粗内容 “active (running)”,则表示 MySQL 服务已经成功启动。
也可以通过 Linux 命令查看 MySQL 进程是否存活,结果如下所示。之所以显示两行,是因为 grep 命令中包含“mysql”。第一行中的“/usr/sbin/mysqld”表示 MySQL 进程,第二行中的“grep--color=auto-i mysql”表示 grep 进程:
如果显示“disabled”,则可以执行如下命令设置 MySQL 服务自启动:
如果用户不希望 MySQL 服务自启动,则可以执行如下命令进行设置:
再次查看 MySQL 服务是否自启动,结果如下所示。此时状态变为“disabled”,表示当前 MySQL 服务不处于自启动状态:
- 社区版本开源、免费,可自由下载,但不提供官方技术支持,适合大多数普通用户;
- 企业版本需付费,不能在线下载,可以试用 30 天,提供了更丰富的功能和更完备的技术支持,适合对数据库功能和可靠性要求较高的企业用户;
- 集群版本开源、免费,用于架设集群服务器,可将几个 MySQL Server 封装成一个 Server,需要在社区版本或企业版本的基础上使用;
- 高级集群版本需付费。
下载MySQL
下载 MySQL 的具体操作步骤如下:1) 打开 MySQL 官网首页,单击“DOWNLOADS”按钮,如下图所示,进入下载页面。

图 1 单击“DOWNLOADS”按钮
2) 在下载页面中单击“MySQL Community(GPL)Downloads”链接,如下图所示:

图 2 单击“MySQL Community(GPL)Downloads”链接
3) 在打开的页面中单击“MySQL Community Server”链接,如下图所示:

图 3 单击“MySQL Community Server”链接
4) 在“General Availability(GA)Releases”选项卡中选择适合的版本。如果要在 Windows 平台下安装 MySQL,则推荐下载 MSI 安装程序。在 Windows 版 MySQL 下载页面中单击“Go to Download Page”按钮,如下图所示,进行下载。

图 4 单击“Go to Download Page”按钮
Windows 平台下有两种 MySQL 安装程序:
- 第一种是 mysql-installer-web-community-8.0.25.0.msi,程序大小为 2.4MB,需要联网安装;
- 第二种是 mysql-installer-community-8.0.25.0.msi,程序大小为 435.7MB,离线安装即可(推荐安装程序)。
Linux安装MySQL的三种方式
在 Linux 平台下安装 MySQL 有多种方式,下面介绍三种常见的安装方式,分别是 rpm 命令安装、yum 命令安装和编译安装。1) rpm命令安装
使用 rpm 命令安装扩展名为 .rpm 的软件包。RPM 软件包的一般格式如下图所示:
图 5 RPM软件包的一般格式
其中,el7 表示可以在 Red Hat 7.x、CentOS 7.x、CloudLinux 7.x 系统中安装软件包。
2) yum命令安装
使用“yum install mysql-server”命令安装 MySQL 即可。该安装方式需要联网,从互联网上获取 yum 源。rpm 命令安装方式虽然方便,但是需要手动解决软件包的依赖问题,而 yum 命令安装方式可以解决这个问题。
3) 编译安装
编译安装方式虽然比较复杂,但是参数设置灵活。本书采用 rpm 命令安装方式来安装 MySQL,需要先下载软件包,具体操作步骤为:进入 MySQL 下载页面,选择“Red Hat Enterprise Linux 8/Oracle Linux 8(x86,64-bit),RPM Bundle”选项,单击右侧的“Download”按钮,下载 MySQL RPM 软件包,如下图所示。

图 6 MySQL RPM软件包下载
下载完成后,解压缩软件包,如下图所示,矩形框中的软件包是抽取出来的软件包。

图 7 MySQL RPM软件包解压缩
安装MySQL前的必要操作
接下来将在 CentOS 7 版本的 Linux 平台下安装 MySQL。在安装 MySQL 前,我们还需要执行一些必要的操作。1) 检查服务器上是否存在旧版本的软件包
在采用 rpm 命令安装方式安装 MySQL 前,先执行“rpm-qa|grep-i mysql”命令检查服务器上是否存在旧版本的软件包。如果服务器上存在旧版本的软件包,则显示如下代码。此时需要卸载当前版本的 MySQL。[root@clinux ~]# rpm -qa | grep -i mysql mysql-community-server-8.0.25-1.el7.x86_64 mysql-community-client-plugins-8.0.25-1.el7.x86_64 mysql-community-libs-8.0.25-1.el7.x86_64 mysql-community-client-8.0.25-1.el7.x86_64 mysql-community-common-8.0.25-1.el7.x86_64
如果服务器上不存在旧版本的软件包,则显示如下代码:
[root@clinux ~]# rpm -qa | grep -i mysql [root@clinux ~]
2) 授予/tmp目录较大的权限
由于在安装 MySQL 的过程中,MySQL 用户会在 /tmp 目录下新建 tmp_db 文件,因此需要授予 /tmp 目录较大的权限,执行如下命令即可。[root@clinux /]# chmod -R 777 /tmp [root@clinux /]# ll dr-xr-xr-x. 13 root root 0 Oct 18 01:03 sys drwxrwxrwt. 12 root root 4096 Oct 18 01:04 tmp drwxr-xr-x. 13 root root 155 Aug 18 02:09 usr drwxr-xr-x. 21 root root 4096 Aug 18 02:19 var
CentOS 7安装MySQL
我们把 CentOS 7 下 MySQL 的安装过程分为 5 个步骤,介绍如下。1) 将安装程序复制到/opt目录下
/opt 目录用来安装附加软件包,是用户级的程序目录。安装到 /opt 目录下的程序所包含的数据和相关文件都被存放在同一个目录下。opt 有可选的意思,/opt 目录可以用于存放第三方大型软件,当用户不需要这些软件时,直接使用“rm-rf”命令将其删除即可。当前磁盘容量不够时,也可将 /opt 目录单独挂载到其他磁盘上使用。在这里我们把 MySQL 安装到 /opt 目录下(执行“pwd”命令可以查看工作目录,执行“ls”命令可以查看工作目录下的内容),如下所示。
[root@clinux opt]# pwd /opt [root@clinux opt]# ls mysql-community-client-8.0.25-1.el7.x86_64.rpm mysql-community-libs-8.0.25-1.el7.x86_64.rpm mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm mysql-community-server-8.0.25-1.el7.x86_64.rpm mysql-community-common-8.0.25-1.el7.x86_64.rpm
在 /opt 目录下执行如下命令(必须按照以下顺序执行,因为下面的软件包会依赖上面的软件包):
rpm -ivh mysql-community-common-8.0.25-1.el7.x86_64.rpm rpm -ivh mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpm rpm -ivh mysql-community-client-8.0.25-1.el7.x86_64.rpm rpm -ivh mysql-community-server-8.0.25-1.el7.x86_64.rpm
如果我们没有检查 MySQL 依赖环境,那么在安装 mysql-community-server 时会报错。解释一下上述命令的含义:
- “rpm”是 Red Hat Package Manager 的缩写。通过 RPM 的管理,用户可以把源代码包装成以 .rpm 为扩展名的文件形式,易于安装。
- “-i”的全拼为 --install,表示安装软件包。
- “-v”的全拼为 --verbose,表示提供更多的详细信息输出。
- “-h”的全拼为 --hash,表示安装软件包时列出哈希标记(和“-v”参数一起使用效果更好),展示安装进度条。
2) 安装过程展示
安装过程中的状态如下所示,会展示安装进度条,这就是“-h”参数所起的作用:[root@clinux opt]# rpm -ivh mysql-community-common-8.0.25-1.el7.x86_64.rpm warning: mysql-community-common-8.0.25-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY Preparing... ######################################## [100%] Updating / installing... 1:mysql-community-common-8.0.25-1.el7 ################################ [100%] [root@clinux opt]# rpm -ivh mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm warning: mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY Preparing... ######################################## [100%] Updating / installing... 1:mysql-community-client-plugins-8.0.25-1.el7 ################################ [100%] [root@clinux opt]# rpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpm warning: mysql-community-libs-8.0.25-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY Preparing... ######################################## [100%] Updating / installing... 1:mysql-community-libs-8.0.25-1.el7 ################################ [100%] [root@clinux opt]# rpm -ivh mysql-community-client-8.0.25-1.el7.x86_64.rpm warning: mysql-community-client-8.0.25-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY Preparing... ######################################## [100%] Updating / installing... 1:mysql-community-client-8.0.25-1.el7 ################################ [100%] [root@clinux opt]# rpm -ivh mysql-community-server-8.0.25-1.el7.x86_64.rpm warning: mysql-community-server-8.0.25-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY Preparing... ######################################## [100%] Updating / installing... 1:mysql-community-server-8.0.25-1.el7 ################################ [100%]
如果在安装 MySQL 前没有卸载旧版本的软件包,则会报如下错误:
[root@clinux opt]# rpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpm warning: mysql-community-libs-8.0.25-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY error: Failed dependencies: mariadb-libs is obsoleted by mysql-community-libs-8.0.25-1.el7.x86_64
执行如下命令清除之前安装过的依赖:
[root@clinux opt]# yum remove mysql-libs
需要注意的是,在安装过程中可能会由于 Linux 系统缺少依赖导致安装失败。例如,缺少 libaio 依赖会提示如下信息:
error: Failed dependencies: libaio.so.1()(64bit) is needed by mysql-community-server-8.0.25-1.el7.x86_64 libaio.so.1(LIBAIO_0.1)(64bit) is needed by mysql-community-server-8.0.25-1.el7.x86_64 libaio.so.1(LIBAIO_0.4)(64bit) is needed by mysql-community-server-8.0.25-1.el7.x86_64 mysql-community-icu-data-files = 8.0.30-1.el7 is needed by mysql-community-server-8.0.25-1.el7.x86_64
只需根据提示信息安装必要的依赖即可。执行如下命令安装 libaio 依赖:
yum install libaio
3) 查看 MySQL 是否安装成功
执行如下命令查看 MySQL 是否安装成功,其中 “-i” 参数表示无须区分字母大小写。如果缺少某个软件包,则表示此次安装未完成。[root@clinux opt]# rpm -qa | grep -i mysql mysql-community-server-8.0.25-1.el7.x86_64 mysql-community-client-plugins-8.0.25-1.el7.x86_64 mysql-community-libs-8.0.25-1.el7.x86_64 mysql-community-client-8.0.25-1.el7.x86_64 mysql-community-common-8.0.25-1.el7.x86_64
上述代码表示 MySQL 已经完成安装,但并不代表安装过程中没有出现问题。执行“mysqladmin--version”命令测试 MySQL 是否安装成功。如果显示如下代码,则表示 MySQL 安装成功:
[root@clinux opt]# mysqladmin --version mysqladmin Ver 8.0.25 for Linux on x86_64 (MySQL Community Server - GPL)
4) 启动MySQL服务,查看状态
以下命令分别用来启动、关闭、重启 MySQL 服务,以及查看状态:systemctl start mysqld.service systemctl stop mysqld.service systemctl restart mysqld.service systemctl status mysqld.service
上述命令中加不加 .service 都可以,因为 mysqld 这个可执行文件就代表 MySQL 服务器端程序。运行这个可执行文件就可以直接启动一个服务器进程,结果如下所示。如果显示加粗内容 “active (running)”,则表示 MySQL 服务已经成功启动。
[root@clinux ~]# systemctl status mysqld.service mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2022-10-18 01:03:45 PDT; 11s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 1019 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 1651 (mysqld) Status: "Server is operational" Tasks: 38 CGroup: /system.slice/mysqld.service └─1651 /usr/sbin/mysqld Oct 18 01:03:35 localhost.localdomain systemd[1]: Starting MySQL Server... Oct 18 01:03:45 localhost.localdomain systemd[1]: Started MySQL Server.
也可以通过 Linux 命令查看 MySQL 进程是否存活,结果如下所示。之所以显示两行,是因为 grep 命令中包含“mysql”。第一行中的“/usr/sbin/mysqld”表示 MySQL 进程,第二行中的“grep--color=auto-i mysql”表示 grep 进程:
[root@clinux opt]# ps -ef | grep -i mysql mysql 4161 1 0 Aug22 ? 00:00:49 /usr/sbin/mysqld root 27652 14332 0 02:36 pts/0 00:00:00 grep --color=auto -i mysql
5) 查看MySQL服务是否自启动
执行如下命令查看 MySQL 服务是否自启动。从结果中可以看到,默认状态是“enabled”,表示当前 MySQL 服务处于自启动状态。[root@clinux opt]# systemctl list-unit-files | grep mysqld.service mysqld.service enabled
如果显示“disabled”,则可以执行如下命令设置 MySQL 服务自启动:
systemctl enable mysqld.service
如果用户不希望 MySQL 服务自启动,则可以执行如下命令进行设置:
systemctl disable mysqld.service
再次查看 MySQL 服务是否自启动,结果如下所示。此时状态变为“disabled”,表示当前 MySQL 服务不处于自启动状态:
[root@clinux opt]# systemctl disable mysqld.service Removed symlink /etc/systemd/system/multi-user.target.wants/mysqld.service. [root@clinux opt]# systemctl list-unit-files | grep mysqld.service mysqld.service disabled