怎样将MySQL 5.6.47升级到5.7.20

29次阅读
没有评论

共计 3094 个字符,预计需要花费 8 分钟才能阅读完成。

今天就跟大家聊聊有关怎样将 MySQL 5.6.47 升级到 5.7.20,可能很多人都不太了解,为了让大家更加了解,丸趣 TV 小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

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

本文演示使用 In-Place Upgrade 升级 MySQL。

1. 升级方法介绍

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

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

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

本文演示使用 In-Place Upgrade 升级 MySQL。

2. 升级步骤 2.1 操作之前,查看版本 [root@source bin]# /usr/local/mysql/bin/mysql -V
mysql Ver 14.14 Distrib 5.6.47, for linux-glibc2.12 (x86_64) using EditLine wrapper

2.2 设置参数 innodb_fast_shutdown 为 0

需要将 innodb_fast_shutdown 参数设置为 0
set global innodb_fast_shutdown=0;
注:innodb_fast_shutdown 有 0、1、2 三个值。
参数值为 0 代表 MySQL 关闭,InnoDB 需要完成所有的 full purge 和 merge Insert buffer 操作,这个过程需要一定的时间,有时可能会花上几个小时。
参数值为 1 是该参数的默认值,表示关闭 MySQL 时不完成 full purge 和 Merge insert buffe 操作,但是缓冲池中的脏页还是会写到磁盘中。
参数值为 2 时,表示既不完成 full purge 和 Merge insert buffer 操作,也不将缓冲池中的脏页刷新到磁盘,而是将日志写入日志文件中。

2.3 关闭 MySQL 服务

命令如下:
[root@source bin]# /usr/local/mysql/bin/mysqladmin -uroot -poracle123 shutdown

2.4 替换 MySQL 软件

需要执行 unlink mysql 命令,取消链接到 MySQL 5.6.47 版本的链接文件。
解压新版本的 MySQL 软件包,然后重新做链接并赋予 MySQL 权限。命令如下:

cd /usr/local
unlink mysql
tar -zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
ln -s mysql-5.7.20-linux-glibc2.12-x86_64 mysql
chown -R mysql:mysql mysql

2.5 替换参数文件

把 MySQL5.6 的配置文件替换成 5.7 版本的 my.cnf。

2.6 启动 MySQL 实例

注:在启动过程中,需要添加–skip-grant-tables 和–skip-networking 参数,来保证没有 任何的应用连接,让升级过程更加安全。
/usr/local/mysql/bin/mysqld_safe –defaults-file=/etc/my.cnf –skip-grant-tables –skip-networking

2.7 升级系统表数据字典信息

命令如下:
/usr/local/mysql/bin/mysql_upgrade
输出结果:

[root@source local]# /usr/local/mysql/bin/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
Upgrading the sys schema.
Checking databases.
sys.sys_config OK
test.BONUS OK
test.DEPT OK
test.EMP OK
test.SALGRADE OK
Upgrade process completed successfully.
Checking if update is needed.
[root@source local]#

没有报错,表示系统表数据字典信息升级成功。

2.8 重启 MySQL 服务

首先停掉 MySQL 服务,命令如下:
/usr/local/mysql/bin/mysqladmin -uroot -poracle123 shutdown
然后正常启动 MySQL 服务,命令如下:
/usr/local/mysql/bin/mysqld_safe –defaults-file=/etc/my.cnf
说明:正常启动 MySQL 数据库,不要使用–skip-grant-tables 和 -skip-networking 参数。

2.9 验证 MySQL 版本

目前己经是 MySQL5.7 版本,证明升级成功:
[root@source local]# /usr/local/mysql/bin/mysql -V
/usr/local/mysql/bin/mysql Ver 14.14 Distrib 5.7.20, for linux-glibc2.12 (x86_64) using EditLine wrapper

看完上述内容,你们对怎样将 MySQL 5.6.47 升级到 5.7.20 有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注丸趣 TV 行业资讯频道,感谢大家的支持。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-28发表,共计3094字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)