在Linux系统中使用二进制包安装和升级MySQL5.7
作者 hxwsq_华 于 2026-01-01 16:01:00.0 发表于 浙江 最近修改于 2026-03-06 18:01:57.0 本文浏览量:139人次
一、说明
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 准备工作
1.2.1 系统中安装所需要的工具包
yum -y install wget rsync
rpm -q wget rsync
1.2.2 MySQL5.7二进制包官方下载
1.2.3 MySQL5.7.44二进制包备用下载
二、安装步骤
2.1 设置安装过程中的临时环境变量(本文以安装MySQL 5.7.42版本,安装在/usr/local目录为例)
export InstallVersion=5.7.42
export InstallDir=/usr/local
2.2 获取MySQL 5.7版本的二进制包,解压至安装目录并重命名为mysql
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.3 安装所需的依赖包
【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.4 创建系统用户mysql
groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql
id mysql
2.5 创建配置文件my.cnf
【基础配置,仅供参考】
cat > /etc/my.cnf << EOF
[mysqld]
user=mysql
port=3306
basedir=$InstallDir/mysql
datadir=$InstallDir/mysql/data
pid-file=$InstallDir/mysql/data/mysqld.pid
log-error=$InstallDir/mysql/log/mysqld.log
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.6 创建MySQL数据目录和日志目录,并配置MySQL环境变量
mkdir -p $InstallDir/mysql/{data,log}
chown -R mysql:mysql $InstallDir/mysql
ll $InstallDir/mysql
echo "export PATH=$InstallDir/mysql/bin:\$PATH" >> /etc/profile
source /etc/profile
2.7 初始化MySQL数据库并获取临时密码
mysqld --user=mysql --basedir=$InstallDir/mysql --datadir=$InstallDir/mysql/data --initialize
cat $InstallDir/mysql/log/mysqld.log | grep 'temporary password'
【初始化时如果加上initialize-insecure参数可以不生成临时密码,首次登录MySQL数据库时无需输入密码】
mysqld --user=mysql --basedir=$InstallDir/mysql --datadir=$InstallDir/mysql/data --initialize-insecure
2.7 配置MySQL数据库开机自启动
cat > /etc/systemd/system/mysqld.service << EOF
[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.8 使用临时密码登录MySQL数据库并更新管理员密码
【密码可自定义】
mysql> alter user 'root'@'localhost' identified by '123456';
三、升级步骤
3.1 设置升级过程中的临时环境变量
【MySQL 5.7版本官方已停止维护,最新版本停留在MySQL 5.7.44】
export UpgradeVersion=5.7.44
export InstallDir=/usr/local
3.2 停止运行的MySQL数据库,并做好数据备份
systemctl stop mysqld
systemctl status mysqld
【做好数据备份,以便出现问题时可以及时回退】
cp -r $InstallDir/mysql $InstallDir/mysql_$(date +%Y%m%d)
3.3 获取MySQL 5.7版本最新的二进制包并解压
wget -P $PWD https://cdn.mysql.com/archives/mysql-5.7/mysql-$UpgradeVersion-linux-glibc2.12-x86_64.tar.gz
tar -zxf $PWD/mysql-$UpgradeVersion-linux-glibc2.12-x86_64.tar.gz
3.4 使用新版本的文件替换旧版本的文件
【推荐】使用rsync工具进行文件的更新和替换
rsync -a $PWD/mysql-$UpgradeVersion-linux-glibc2.12-x86_64/ $InstallDir/mysql/
chown -R mysql:mysql $InstallDir/mysql
【如果系统中无法安装rsync,也可以使用cp命令】
/bin/cp -rf $PWD/mysql-$UpgradeVersion-linux-glibc2.12-x86_64/* $InstallDir/mysql/
chown -R mysql:mysql $InstallDir/mysql
3.5 启动MySQL数据库并进行更新检查
systemctl start mysqld
mysql_upgrade -uroot -p --force --skip-version-check -S /tmp/mysql.sock
3.6 检查升级后的版本并进行登录测试
mysql -V
mysql> select version();
3.7 版本回退
【如果升级出现问题,可通过备份进行版本回退】
export InstallDir=/usr/local
# 停止运行的MySQL数据库
systemctl stop mysqld
# 删除升级后的目录,并还原备份的目录
rm -rf $InstallDir/mysql && mv $InstallDir/mysql_$(date +%Y%m%d) $InstallDir/mysql
# 还原后的目录重新授权
chown -R mysql:mysql $InstallDir/mysql
# 启动MySQL数据库
systemctl start mysqld
# 检查回退后的版本并进行登录测试
mysql -V
mysql> select version();
浙公网安备 33011002016966号