首页 > 编程笔记 > MySQL笔记 阅读:1

Linux安装MySQL过程详解(新手必看)

目前 MySQL 有四大版本,分别是社区版本(MySQL Community Server)、企业版本(MySQL Enterprise Edition)、集群版本(MySQL Cluster)和高级集群版本(MySQL Cluster CGE),具体说明如下:

下载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 安装程序:

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 时会报错。解释一下上述命令的含义:

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

相关文章