MySQL版本升级20201128

MySQL版本升级

概述

MySQL版本升级这项工作对DBA来说是十分必要的,因为每个MySQL 版本都有自己支持的生命周期,在超过生命周期之后,官方就不再提供服务支持。而且新版本的性能与特性比老版本的 MySQL提升得太多了。针对新版本增加的特性,更是便于DBA 去管理优化 MySQL数据库的工作。

但是在没有充分的测试之前,就应用到线上生产环境中也是非常危险的,因为升级可能会让应用不能正常运作,也可能引起性能问题。所以我们要经常去关注MySQL官方发布的信息,不要冒险去做第一个吃“螃蟹”的人,多收集资料,多测试,最后升级到一个稳定的发布版本。

一 MySQL升级方式

MySQL升级方式有两种,一种叫In-Place Upgrade,另一种叫Logical Upgrade(逻辑升级方式)

Logical Upgrade:利用mysqldump来直接导出SQL文件,然后导入到新库中,适应于跨大版本的升级方案,做法相对安全,并能整理表中碎片。但如果有数据量较大的库需要mysqldump导出,时间上的消耗就会很大,升级效率就会受到影响。

In-Place Upgrade:它的工作方法简单快速,就是直接替换掉原来版本MySQL的安装目录和 my.cnf配置文件,利用mysql_upgrade 脚本来完成系统表的升级。跨小版本升级可以使用in-place这种方式。

二 MySQL In-Place Upgrade 小版本升级

mysql-5.7.20升级到mysql-5.7.32

2.1 替换MySQL的程序文件

首先停止服务

[root@mysqldb ~]# service mysql stop

Shutting down MySQL..                                      [确定]

[root@mysqldb app]# ll -h

总用量 1.3G

lrwxrwxrwx 1 mysql mysql   35 7月  18 09:09 mysql -> mysql-5.7.20-linux-glibc2.12-x86_64

drwxr-xr-x 9 mysql mysql 4.0K 7月  18 09:08 mysql-5.7.20-linux-glibc2.12-x86_64

-rw-r--r-- 1 mysql mysql 612M 7月  18 09:08 mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

-rw-r--r-- 1 root  root  631M 11月 28 20:20 mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz

 

tar -zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz

[root@mysqldb app]# rm mysql

rm:是否删除符号链接 "mysql"?y

 

chown -R mysql:mysql *

[root@mysqldb app]# ll -h

总用量 1.3G

lrwxrwxrwx 1 mysql mysql   36 11月 28 20:40 mysql -> mysql-5.7.32-linux-glibc2.12-x86_64/

drwxr-xr-x 9 mysql mysql 4.0K 7月  18 09:08 mysql-5.7.20-linux-glibc2.12-x86_64

-rw-r--r-- 1 mysql mysql 612M 7月  18 09:08 mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

drwxr-xr-x 9 mysql mysql 4.0K 11月 28 20:38 mysql-5.7.32-linux-glibc2.12-x86_64

-rw-r--r-- 1 mysql mysql 631M 11月 28 20:37 mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz

 

2.2 修改配置文件

由于是小版本升级不用修改配置文件从5.7.20到5.7.32

 

2.3 升级系统表数据字典

2.3.1 启动服务

启动mysql服务

mysqld_safe --defaults-file=/mysql/data/3306/my.cnf --skip-grant-tables --skip-networking --user=mysql & 

--skip-grant-tables  此选项会让MySQL服务器跳过验证步骤,允许所有用户以匿名的方式,无需做密码验证直接登陆MySQL服务器,并且拥有所有的操作权限。

--skip-networking  此选项会关门MySQL服务器的远程连接。这是因为以--skip-grant-tables方式启动MySQL服务器会有很大的安全隐患,为了降低风险,需要禁止远程客户端的连接。

在启动过程中要注意的是需要加上--skip-grant-tables和--skip-networking参数,来保证没有任何的应用连接,让升级过程更加安全。

2.3.2 升级数据字典表

mysql_upgrade

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.general_log                                  OK

mysql.gtid_executed                                OK

mysql.help_category                                OK

mysql.help_keyword                                 OK

mysql.help_relation                                OK

mysql.help_topic                                   OK

mysql.innodb_index_stats                           OK

mysql.innodb_table_stats                           OK

mysql.ndb_binlog_index                             OK

mysql.plugin                                       OK

mysql.proc                                         OK

mysql.procs_priv                                   OK

mysql.proxies_priv                                 OK

mysql.server_cost                                  OK

mysql.servers                                      OK

mysql.slave_master_info                            OK

mysql.slave_relay_log_info                         OK

mysql.slave_worker_info                            OK

mysql.slow_log                                     OK

mysql.tables_priv                                  OK

mysql.time_zone                                    OK

mysql.time_zone_leap_second                        OK

mysql.time_zone_name                               OK

mysql.time_zone_transition                         OK

mysql.time_zone_transition_type                    OK

mysql.user                                         OK

Found outdated sys schema version 1.5.1.

Upgrading the sys schema.

Checking databases.

sys.sys_config                                     OK

Upgrade process completed successfully.

Checking if update is needed.

2.3.3关闭MySQL服务

mysqladmin -u root -p shutdown

Enter password:

2.4 验证加正常使用

正常启动MySQL数据库,不要使用--skip-grant-tables和--skip-networking参数。

service mysql start

Starting MySQL..                                           [确定]

 

show variables like 'version'; 

+---------------+------------+

| Variable_name | Value      |

+---------------+------------+

| version       | 5.7.32-log |

升级成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值