MySQL数据库版本升级

注意事项:

1.只支持GA版本之间进行升级

2.如果小版本太低,先升级到最新小版本,再进行跨版本升级

3.考虑好回退方案

4.制定好升级方案和升级步骤,尽可能降低停机时间

升级过程规划:

1.备份保存,(冷备需要停止业务,热备无需停止)

2.最新程序安装

3.原有程序关闭(页面显示维护)

4.最新程序启动(加载原有程序实现挂库升级并采用跳过授权表及远程连接方式启动)

5.升级数据结构

6.确认新程序可以正常重启

7.功能测试(反复核验数据库相关功能是否正常)

8.升级完毕(取消维护页面,恢复正常线上业务)

 

数据库服务版本升级
mysql 5.6 --> 5.7 --> 8.0
​
部署旧版本数据库服务
mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz
mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
​
步骤一:解压软件程序
cd /usr/local
tar xf mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz
tar xf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
ln -s mysql-5.6.48-linux-glibc2.12-x86_64 mysql56 
ln -s mysql-5.7.30-linux-glibc2.12-x86_64 mysql57 
​
步骤二:创建数据目录信息
mkdir -p /data/3356/data /data/3357/data
chown -R mysql.mysql /data/
​
步骤三:进行初始化操作
mv /etc/my.cnf /tmp 
mysql-5.6初始化:
/usr/local/mysql56/scripts/mysql_install_db --user=mysql --datadir=/data/3356/data --basedir=/usr/local/mysql56
​
mysql-5.7初始化:
/usr/local/mysql57/bin/mysqld --initialize-insecure --user=mysql --datadir=/data/3357/data --basedir=/usr/local/mysql57
​
步骤四:编写配置文件
cat >>/etc/my56.cnf<<EOF 
[mysqld]
port=3356
user=mysql
basedir=/usr/local/mysql
datadir=/data/3356/data/
socket=/tmp/mysql3356.sock
EOF 
​
cat >>/etc/my57.cnf<<EOF 
[mysqld]
port=3357
user=mysql
basedir=/usr/local/mysql
datadir=/data/3357/data/
socket=/tmp/mysql3357.sock
EOF
​
步骤五:启动数据库服务 
cat >>/etc/systemd/system/mysqld3356.service<<EOF 
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql56/bin/mysqld --defaults-file=/etc/my56.cnf
LimitNOFILE=5000
EOF
​
cat >>/etc/systemd/system/mysqld3357.service<<EOF 
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql57/bin/mysqld --defaults-file=/etc/my57.cnf
LimitNOFILE=5000
EOF
systemctl daemon-reload
systemctl start mysqld56
systemctl start mysqld57

5.6.48 ->5.7.30 本地升级

步骤一:数据库服务原有程序关闭
systemctl stop mysqld3356(测试环境)

#优雅终止:可以继续接收数据,没有数据再断开
vim /my.cnf(线上环境)
[mysqld]
innodb_fast_shutdown=0
systemctl stop mysqld3356

步骤二: 实现挂库升级
cat /etc/my56.cnf
[mysqld]
port=3356
user=mysql
basedir=/usr/local/mysql57   -- 加载新的数据库服务程序
datadir=/data/3356/data/
socket=/tmp/mysql3356.sock

/usr/local/mysql57/bin/mysqld_safe --defaults-file=/etc/my56.cnf --skip-grant-tables --skip-networking &   #第一次登录免密

步骤三:数据库目录结构升级操作
/usr/local/mysql57/bin/mysql_upgrade -S /tmp/mysql3356.sock --force

步骤四:正常运行启动新的版本数据库服务
vim /etc/systemd/system/mysqld57.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql57/bin/mysqld --defaults-file=/etc/my56.cnf
LimitNOFILE=5000
systemctl start mysqld57
然后就可以使用之前的旧密码登录了!


5.7.30 ->8.0.26 本地升级
步骤一:数据库服务原有程序关闭
systemctl stop mysqld3357

步骤二:实现挂库升级
cat /etc/my56.cnf
[mysqld]
port=3356
user=mysql
basedir=/usr/local/mysql   -- 加载新的数据库服务程序
datadir=/data/3356/data/
socket=/tmp/mysql3356.sock

/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my56.cnf --skip-grant-tables --skip-networking &   #第一次登录免密

步骤三:正常运行启动新的版本数据库服务
vim /etc/systemd/system/mysqld80.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my56.cnf
LimitNOFILE=5000
systemctl start mysqld80

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yone-Z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值