CentOS7安装MySQL5.7:使用二进制文件方式

发布时间 2023-08-14 14:35:12作者: 昵称昵称昵称

CentOS7安装MySQL5.7:使用二进制文件方式

一、安装环境
安装环境如下:
服务器:CentOS 7
安装版本:MySQL 5.7.42

二、安装过程和细节
1、在官网下载二进制安装文件
官网下载地址如下,这个地址里有各个版本的安装包,根据自己的版本选择,下载对应系统的安装包
https://downloads.mysql.com/archives/community

因为这里我们是在 CentOS 7 系统上安装,所以操作系统选择 Red Hat Enterprise Linux,系统版本选择 Linux 7,通过使用二进制安装文件,所以下载Compressed TAR Archive即可,这里对应的压缩包名是mysql-5.7.42-el7-x86_64.tar.gz

2、删除本地默认安装的 MySQL
MySQL 除了自己的发行版本外,还有其他的第三方分支版本,比如 MariaDB,一般 CentOS 系统服务器上会默认安装这个版本的数据库,如果存在,需要先删掉,先用下面命令查看
rpm -qa | grep mariadb

如果发现存在,用下面命令删除
rpm -e --nodeps mariadb-XXX -- 其中 XXX 表示不同版本

3、安装前准备
安全来看,新增一个 mysql 用户组和非登录用户,用来专门启动 MySQL 服务
groupadd mysql
useradd -r -g mysql -s /bin/false mysql

把刚才下载的二进制安装文件包上传到 /usr/local 目录下,解压
cd /usr/local
tar -zxvf mysql-5.7.42-el7-x86_64.tar.gz

然后创建一个软链接指向解压的安装目录 mysql-5.7.42-el7-x86_64,这一步主要是为了基础目录比较简洁,可以直接使用 /usr/local/mysql,如果不想使用软链接,也可以直接改目录名,或者不改也行

ln -s mysql-5.7.42-el7-x86_64 mysql

mv mysql-5.7.42-el7-x86_64 mysql

4、初始化 MySQL 数据库
现在我们看下 MySQL 二进制安装文件里有什么,主要有下面这些文件,和我们安装相关的主要会用到 bin 和 support-files 里的一些文件

目录 用途
bin 存放 MySQL 客户端、服务器的可执行文件,比如 mysql、mysqld 等
docs MySQL 相关手册
include 一些头文件
lib 相关的包库
man Unix 相关手册
share 数据库安装的错误消息、字典和 SQL
support-files 其他支持文件

这里为了后续方便执行 MySQL 命令,把 /usr/local/mysql/bin 目录加到系统环境变量中,在系统环境变量文件 /etc/profile 里添加下面内容 export PATH=$PATH:/usr/local/mysql/bin

下面在基础目录下,新建 mysql-files目录,主要是为了给 secure_file_priv 系统变量设置一个值,这个变量主要是为了安全使用 LOAD DATA、SELECT … INTO OUTFILE 等导入导出数据函数用的,当然这都是为了安全,不创建这个也是可以的

cd /usr/local/mysql
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files

接下来就可以初始化数据库了,执行下面初始化命令,使用 mysql 用户进行初始化
./mysqld --initialize --user=mysql

正常的话,初始化数据库成功,会在当前目录下创建 data 目录,因为 /usr/local/mysql/data 目录就是默认的数据库目录,并且会打印出日志,记住生成的 root@localhost 的临时密码,后续登录需要用到

看看生成的数据库目录里的初始化数据库文件,看到这些应该就很熟悉了吧
如果需要安全连接,需要创建 SSL 和 RSA 相关证书和秘钥文件,比如下面这些文件,正常情况下初始化数据库后会自动生成,如上图就可以看出

ca.pem
ca-key.pem
server-cert.pem
server-key.pem
client-cert.pem
client-key.pem
private_key.pem
public_key.pem

如果没有生成相关安全文件,可以用下面命令来生成
mysql_ssl_rsa_setup

5、启动 MySQL
初始化数据库后,就可以启动数据库了,使用下面命令启动
mysqld_safe --user=mysql &

启动成功后,会在数据库目录下生成错误日志文件和进程文件,默认错误日志文件命名为 host_name.err,默认进程文件命名为 host_name.pid,其中 host_name 是服务器机子名,这里默认数据库目录 datadir 为 /usr/local/mysql/data,当前服务器机子名为 centos7.9。另外,生成默认的客户端连接 socket 文件为 /tmp/mysql.sock

默认文件默认文件名
错误日志 err 文件 /datadir/host_name.err
进程 pid 文件 /datadir/host_name.pid
客户端 socket 文件 /tmp/mysql.sock

当然除了 mysqld_safe,我们还可以使用 mysql.server 启动脚本,在 support-files 目录下,可以把这个脚本加到系统自启动目录下,然后使用 chkconfig 激活即可

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/
chmod +x /etc/init.d/mysql.server
chkconfig --add mysql.server

然后,就可以使用下面命令方便启动或关闭数据库,当然也可以用系统支持的 systemd 来管理,这里就不说了

service mysql.server start
service mysql.server stop

数据库正常启动后,可以用下面命令登录,用上面初始化数据库生成的临时密码,因为临时密码比较复杂,所以用单引号区分,也可以不加
mysql -uroot -p'temporary password'

登录后,一般会要求先修改默认密码,用下面命令修改密码后,就可以正常使用了
ALTER USER 'root'@'localhost' IDENTIFIED BY '重置的密码';

到这里,通过二进制安装文件方式安装 MySQL 5.7.42 已经完成。

6、使用配置文件安装 MySQL
上面的步骤已经可以安装启动 MySQL 数据库了,但是发现没有,一直没有提到最常见的配置文件 my.cnf,在安装和启动 MySQL 的时候,会读取默认的配置文件,我们最熟悉的就是 /etc/my.cnf,还有比如 /etc/mysql/my.cnf 等,如果没有这些配置文件,则会使用默认的配置,比如上面安装提到的

默认的数据目录 datadir,/usr/local/mysql/data
默认的 socket 文件,/tmp/mysql.sock
所以,如果我们要使用自己的配置,可以创建 /etc/my.cnf 文件,然后添加下面几个最基本的配置,这些配置是使用 Yum 存储库安装或 RPM 安装的默认生成配置,使用这些方式安装过的应该很熟悉

[client]
socket=/var/lib/mysql/mysql.sock

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

datadir 目录初始化的时候会自动创建,但是 pid-file 所在目录不会自动创建,如果没有的话,需要先创建
cd /var/run
mkdir mysqld
chown mysql:mysql mysqld

编写好配置文件后,初始化数据库的时候就会根据对应配置生成对应数据库文件

7、删除 MySQL
安装完 MySQL 后,不需要了怎么删呢,根据上面的安装过程,只需要删除安装的相关文件即可

-- 删除添加的 mysql.server 服务
chkconfig --del mysql.server
rm -f /etc/init.d/mysql.server

-- 删除 MySQL 安装相关文件
rm -f /usr/local/mysql -- 删除软链接
rm -rf /usr/local/mysql-5.7.42-el7-x86_64

三、使用二进制文件安装方式总结
从上面的安装过程可以看到,使用二进制文件安装比较繁琐,所以平时我不推荐使用这种方式安装。其实,和通过 Yum 存储库或 RPM 安装包方式安装相比,这两种方式只是把一些需要手动去安装的过程都自动处理,比如下面这些过程

新建 mysql 用户组和用户
创建配置文件 my.cnf
把相关可执行文件加到 /usr/bin、/usr/sbin 目录下
添加系统服务管理文件 mysql.service,方便管理 MySQL
所以,可以看到,使用Yum 存储库或 RPM 安装包方式会方便许多,平时安装推荐使用这两种方式。但是,二进制文件安装方式可以帮助你更好地理解 MySQL 整个安装的基础过程和注意细节。