【DBA手记】-MySQL小版本升级文档-从5.7.30升级到5.7.42

本文详细描述了如何在测试和准生产环境中,安全地将MySQL数据库从5.7.30升级到5.7.42,包括备份数据、替换二进制文件、配置升级过程和验证新版本的步骤。
摘要由CSDN通过智能技术生成

【DBA手记】-MySQL小版本升级文档-从5.7.30升级到5.7.42

  • 本文档先在测试环境下验证,后在准生产环境也作了验证.为了更安全,建议先用mydumper或mysqldump或xtraback等常用备份工具做好备份工作.
  • 备注:本文是整理的之前一个笔记
  • author: superSong
    Email: dba.supersong@163.com

背景及环境

  • 因扫描出mysql有安全漏洞,解决方案那就为升级mysql版本呗 高版本修复了该漏洞
  • 本环境的mysql的安装程序即二进制文件(包) 和 数据目录 都在 /data/mysql这个目录中,版本升级时,直接备份这个mysql目录即可.
  • 准备好新的mysql二进制安装包并上传到服务器任意路径下,如/root/soft/mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz
  • 逻辑思想是只需要把原来的mysql5.7.30的二进制安装程序替换为新的应用程序即可,其它是不用变动的.
  • 要找出原来的二进制应用程序的位置,这里是在/data/mysql目录里除了里面data外的其它程序都是应用程序.
  • 说明:(一般情况下,mysql应用程序是放在/usr/local/下,数据目录放在/data/mysql/data/下,两者是分开的.本案例中的mysql应用程序和数据目录都放在了一起都在/data/mysql下)

备份

1. 关停mysql
这里要注意要使用 慢速关闭mysql,这样InnoDB在关闭之前执行完整的清除和更改缓冲区合并
登录到mysql中 执行
mysql> SET GLOBAL innodb_fast_shutdown=0;
mysql> shutdown;

2. 备份原来的mysql目录,里面[包含了应用程序和数据]
[root@node1 data]# mv /data/mysql /data/mysql_bak20231123

部署

1. 创建新的mysql目录 并授权

[root@node1 data]# mkdir /data/mysql
[root@node1 data]# chown -R mysql.mysql /data/mysql
[root@node1 data]# ll /data
总用量 0
drwxr-xr-x  3 mysql mysql  18 11月 23 14:17 mysql
drwxr-xr-x 12 mysql mysql 190 11月 22 15:30 mysql_bak20231123
drwxr-xr-x  2 mysql mysql  22 11月 21 15:49 slowlog

2.把原来备份好的数据目录复制拷贝过来,放到新建的mysql目录下
[root@node1 data]#cp -ar /data/mysql_bak20231123/data /data/mysql/

3. 解压新的mysql二进制包

[root@node1 ~]# cd /root/soft/
[root@node1 soft]# tar -zxf mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz
[root@node1 soft]# ll -h
drwxr-xr-x 9 root root  129 11月 23 14:20 mysql-5.7.42-linux-glibc2.12-x86_64
-rw-r--r-- 1 root root 647M 11月 23 14:18 mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz

4. 将解压后的mysql-5.7.42-linux-glibc2.12-x86_64里面的所有文件移到 /data/mysql 目录下

[root@node1 soft]# ll /data/mysql  
总用量 4
drwxr-x--- 12 mysql mysql 4096 11月 23 12:03 data

[root@node1 soft]# mv /root/soft/mysql-5.7.42-linux-glibc2.12-x86_64/*  /data/mysql/
[root@node1 soft]# chown -R mysql.mysql /data/mysql/ # 并修改属组为mysql
[root@node1 soft]# 
[root@node1 soft]# ll /data/mysql
总用量 272
drwxr-xr-x  2 mysql mysql   4096 11月 23 16:18 bin
drwxr-x---  6 mysql mysql   4096 11月 23 16:16 data # 这里是复制过来的原来的数据目录
drwxr-xr-x  2 mysql mysql     73 11月 23 16:18 docs
drwxr-xr-x  3 mysql mysql   4096 11月 23 16:18 include
drwxr-xr-x  5 mysql mysql    230 11月 23 16:18 lib
-rw-r--r--  1 mysql mysql 255738 3月  16 2023 LICENSE
drwxr-xr-x  4 mysql mysql     30 11月 23 16:18 man
-rw-r--r--  1 mysql mysql    566 3月  16 2023 README
drwxr-xr-x 28 mysql mysql   4096 11月 23 16:18 share
drwxr-xr-x  2 mysql mysql     90 11月 23 16:18 support-files

5. 启动mysql
[root@node1 ~]# mysqld_safe --user=mysql --datadir=/data/mysql/data &

6.运行mysql_upgrade

[root@node1 ~]# mysql_upgrade -uroot -p123456 --socket=/data/mysql/data/mysql.sock
mysql_upgrade: [Warning] Using a password on the command line interface can be insecure.
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
Checking system database.
mysql.columns_priv                                 OK
mysql.db                                           OK
mysql.engine_cost                                  OK
mysql.event                                        OK
mysql.func                                         OK
...
...
mysql.time_zone_transition_type                    OK
mysql.user                                         OK
The sys schema is already up to date (version 1.5.2).
Checking databases.
sys.sys_config                                     OK
test.t1                                            OK
test.t5                                            OK
Upgrade process completed successfully.
Checking if update is needed.

重启mysql

[root@node1 soft]# /etc/init.d/mysqld restart
Shutting down MySQL.. SUCCESS! 
Starting MySQL.. SUCCESS! 
[root@node1 soft]# 
[root@node1 soft]# ps aux |grep mysql
root      76047  1.6  0.0 113312  1664 pts/2    S    17:02   0:00 /bin/sh /data/mysql/bin/mysqld_safe --datadir=/data/mysql/data --pid-file=/data/mysql/data/db.pid
mysql     77371 11.7  9.0 2270128 262528 pts/2  Sl   17:02   0:00 /data/mysql/bin/mysqld --basedir=/data/mysql --datadir=/data/mysql/data --plugin-dir=/data/mysql/lib/plugin --user=mysql --log-error=/datamysql/data/error.log --open-files-limit=65535 --pid-file=/data/mysql/data/db.pid --socket=/data/mysql/data/mysql.sock --port=3306

验证

[root@node1 mysql]# mysql -uroot -p123456 --socket=/data/mysql/data/mysql.sock
root@db 16:24:  [(none)]> select @@version;
+------------+
| @@version  |
+------------+
| 5.7.42-log |
+------------+
1 row in set (0.00 sec)
  • 24
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值