在Linux系统中使用二进制包安装和升级MySQL5.7           

在Linux系统中使用二进制包安装和升级MySQL5.7

作者 hxwsq_华 于 2022-08-18 12:00:00.0 发表于 浙江    最近修改于 2026-01-27 19:54:57.0     本文浏览量:24人次

一、说明

1.1 操作系统版本

本文适用于以下操作系统(均为最小化安装系统):

【CentOS Linux 7】

cat /etc/centos-release

【Rocky Linux 9】

cat /etc/rocky-release

【openEuler 22.03】

cat /etc/openEuler-release

【openEuler 24.03】

cat /etc/openEuler-release

1.2 准备工作

【MySQL5.7二进制包官方下载】

【MySQL5.7.44二进制包备用下载】

二、安装步骤

2.1 获取MySQL 5.7版本的二进制包(本文以安装MySQL 5.7.42版本为例),解压至安装目录(本文以/usr/local目录为例)并重命名为mysql

export InstallVersion=5.7.42
export InstallDir=/usr/local
wget -P $PWD https://cdn.mysql.com/archives/mysql-5.7/mysql-$InstallVersion-linux-glibc2.12-x86_64.tar.gz
tar -zxf $PWD/mysql-$InstallVersion-linux-glibc2.12-x86_64.tar.gz -C $InstallDir
mv $InstallDir/mysql-$InstallVersion-linux-glibc2.12-x86_64 $InstallDir/mysql
ll $InstallDir/mysql

2.2 安装所需的依赖包

【CentOS Linux 7】
无需安装其他依赖包
【Rocky Linux 9】
dnf -y install epel-release
dnf -y install ncurses-compat-libs
rpm -q ncurses-compat-libs
【openEuler 22.03】 && 【openEuler 24.03】
dnf -y install ncurses-compat-libs
rpm -q ncurses-compat-libs

2.3 创建系统用户mysql

groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql
id mysql

2.4 创建配置文件my.cnf

【基础配置,仅供参考】
cat << EOF > /etc/my.cnf
[mysqld]
user=mysql
port=3306
basedir=$InstallDir/mysql
datadir=$InstallDir/mysql/data
log-error=$InstallDir/mysql/log/mysqld.log
pid-file=$InstallDir/mysql/mysqld.pid
skip-name-resolve
symbolic-links=0
lower_case_table_names=1
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
[client]
socket=/tmp/mysql.sock
EOF

2.5 创建MySQL数据目录和日志目录,并初始化MySQL数据库

mkdir -p $InstallDir/mysql/{data,log}
chown -R mysql:mysql $InstallDir/mysql
ll $InstallDir/mysql
【加上initialize-insecure参数表示不生成临时密码,首次登录MySQL数据库时无需输入密码】
cd $InstallDir/mysql/bin/ && ./mysqld --user=mysql --basedir=$InstallDir/mysql --datadir=$InstallDir/mysql/data --initialize-insecure
【不加initialize-insecure参数,初始化后会在mysqld.log文件中生成临时密码用于首次登录MySQL】
cd $InstallDir/mysql/bin/ && ./mysqld --user=mysql --basedir=$InstallDir/mysql --datadir=$InstallDir/mysql/data --initialize
cat $InstallDir/mysql/log/mysqld.log | grep 'temporary password'

2.6 配置MySQL环境变量并配置开机自启动

echo "export PATH=$InstallDir/mysql/bin:\$PATH" >> /etc/profile
source /etc/profile
cat << EOF > /etc/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
[Service]
User=mysql
Group=mysql
ExecStart=$InstallDir/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=65536
LimitNPROC=65536
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now mysqld.service
systemctl status mysqld.service

2.7 配置MySQL数据库的管理员密码

【密码可自定义】
mysql> alter user 'root'@'localhost' identified by '123456';

三、升级步骤

3.1 停止运行的MySQL数据库,并做好数据备份

systemctl stop mysqld
systemctl status mysqld
【做好数据备份,以便出现问题时可以及时回退】
export InstallDir=/usr/local
cp -r $InstallDir/mysql $InstallDir/mysql.bak$(date +%Y%m%d)

3.2 获取MySQL 5.7版本最新的二进制包并解压

【MySQL 5.7版本官方已停止维护,最新版本停留在MySQL 5.7.44】
wget -P $PWD https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
tar -zxf $PWD/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz

3.3 使用新版本的文件替换旧版本的文件

【推荐】使用rsync工具进行文件的更新和替换
rsync -av $PWD/mysql-5.7.44-linux-glibc2.12-x86_64/ $InstallDir/mysql/
【如果系统中无法安装rsync,也可以使用cp命令】
/bin/cp -rf  $PWD/mysql-5.7.44-linux-glibc2.12-x86_64/* $InstallDir/mysql/
chown -R mysql:mysql $InstallDir/mysql

3.4 启动MySQL数据库并进行更新检查

systemctl start mysqld
systemctl status mysqld
mysql_upgrade -uroot -p --force --skip-version-check -S /tmp/mysql.sock

3.5 检查升级后的版本并进行登录测试

mysql -V
mysql> select version();

3.6 版本回退

【如果升级出现问题,可通过备份进行版本回退】
# 停止运行的MySQL数据库
systemctl stop mysqld
# 删除升级后的目录,并还原备份的目录
rm -rf $InstallDir/mysql && mv $InstallDir/mysql.bak$(date +%Y%m%d) $InstallDir/mysql
# 还原后的目录重新授权
chown -R mysql:mysql $InstallDir/mysql
# 启动MySQL数据库
systemctl start mysqld
systemctl status mysqld
# 检查回退后的版本并进行登录测试
mysql -V
mysql> select version();

本站声明

本站所有文章均由作者(hxwsq_华)个人整理和发布,仅供学习和参考,严禁任何形式的复制和转载!
如有疑问,请点击此处给作者发邮件,谢谢!