MySQL5.6升级到5.7分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MySQL 5.6升级到5.7
目录
一、概述 (2)
二、升级环境说明 (2)
三、升级MySQL软件 (2)
1、安装MySQL 5.7 (2)
2、修改相关目录的权限 (2)
四、停应用和MySQL 5.6.29实例并备份数据库 (2)
1、停应用 (2)
2、数据库备份方法说明 (3)
3、关闭MySQL 5.6.29实例并备份数据库 (3)
3.1、关闭MySQL 5.6.29实例 (3)
3.2、备份MySQL 5.6.29数据库 (3)
五、修改f配置文件并启动MySQL 5.7.13 (3)
1、修改f配置文件 (3)
1.1、备份f配置文件 (3)
1.2、正式修改f配置文件 (3)
2、启动MySQL 5.7.13 (3)
2.1、启动mysql 5.7.13 (3)
2.2、确认是否启动成功 (4)
六、升级数据库(升级数据字典) (4)
1、运行mysql_upgrade升级数据字典 (4)
2、重启MySQL 5.7.13实例 (5)
3、确认升级是否成功 (5)
七、升级后的相关操作 (5)
1、修改环境变量 (5)
2、Cp 5.7.13的启动脚本到/etc/init.d目录下 (6)
八、升级回退 (6)
1、关闭MySQL 5.7.13实例 (6)
2、通过备份恢复数据库 (6)
3、通过备份恢复mysql 5.6.29的配置文件 (6)
4、通过备份恢复mysql 5.6.29的启动脚本 (6)
5、启动mysql 5.6.29实例 (6)
6、修改环境变量 (6)
7、连接MySQL验证是否回退成功 (7)
一、概述
1、运行Mysql_upgrade时需要禁用GTID,因为运行Mysql_upgrade会修改mysql引擎的系统表,这不是一个事务表。
2、升级到5.7官方推荐的两种方法:
2.1、in-place upgrade:原地升级法,利用已存在的datadir目录进行升级。
2.2、logical upgrade:逻辑升级法,利用mysqldump导出导入进行升级。
3、在实际的升级过程中很少会用到上面这两种方法,特别是第一种;通常都是通过部署一个新从库来完成升级的(主库老版本,从库目标版本),这样的话只需要在切换的时候停下机就行了。
4、逻辑升级的话,先导出,接着导入,最后运行mysql_upgrade完成升级;另外,小版本升级可以不运行mysql_upgrade,在实际的生产环境中,建议不管是小版本升级还是大版本升级都运行mysql_upgrade。
二、升级环境说明
三、升级MySQL软件
1、安装MySQL 5.7
[root@rac1 ~]#
cd /data/soft/
tar –zxvf mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz –C /opt/app/mysql/
mv /opt/app/mysql/mysql-5.7.13-linux-glibc2.5-x86_64 /opt/app/mysql/5.7.13
2、修改相关目录的权限
[root@rac1 ~]# chown -R mysql.mysql /opt/app/mysql/5.7.13
四、停应用和MySQL 5.6.29实例并备份数据库
1、停应用
操作过程不进演示
2、数据库备份方法说明
第一种:通过Mysqldump进行备份,这种方法备份速度快恢复速度慢,备份时数据库需要正常运行。
第二种:通过cp 5.6.29的datadir目录来备份,这种方法,备份速度慢,恢复速度快(出问题直接mv回去就行了);但是,需要更多的磁盘空间,这种方法需要在数据库关闭之后进行备份。
3、关闭MySQL 5.6.29实例并备份数据库
3.1、关闭MySQL 5.6.29实例
[root@rac1 ~]# /opt/app/mysql/5.6.29/bin/mysqladmin -uroot -pwuyong -S /tmp/mysql3376.sock shutdown Warning: Using a password on the command line interface can be insecure.
[root@rac1 ~]# ps -ef | grep mysqld
root 3790 2453 0 15:57 pts/0 00:00:00 grep mysqld
3.2、备份MySQL 5.6.29数据库
# 在实例关闭之后,通过cp datadir目录的方式来备份。
[root@rac1 ~]# cd /data/mysql/
[root@rac1 mysql]# ll
total 4
drwxr-xr-x 5 mysql mysql 4096 May 25 14:35 mysql3376
[root@rac1 mysql]# cp -pr mysql3376 mysql3376.bak
[root@rac1 mysql]# ll
total 8
drwxr-xr-x 5 mysql mysql 4096 May 25 14:35 mysql3376
drwxr-xr-x 5 mysql mysql 4096 May 25 14:35 mysql3376.bak
五、修改f配置文件并启动MySQL 5.7.13
1、修改f配置文件
1.1、备份f配置文件
[root@rac1 ~]# cp /etc/f /etc/5.6.29_f
[root@rac1 ~]# ls -l /etc/5.6.29_f
-rw-r--r-- 1 root root 1894 Jul 5 16:00 /etc/5.6.29_f
1.2、正式修改f配置文件
# 主要修改basedir和禁用gtid
将/etc/f文件中的“basedir = /opt/app/mysql/5.6.29”替换成“basedir =
/opt/app/mysql/5.7.13 ”并禁用GTID,然后保存所做的修改!
2、启动MySQL 5.7.13
2.1、启动mysql 5.7.13
[root@rac1 ~]# /opt/app/mysql/5.7.13/bin/mysqld --defaults-file=/etc/f &
[1] 4258
2.2、确认是否启动成功
[root@rac1 ~]# ps -ef | grep mysqld | grep -v grep
mysql 4258 2453 4 16:06 pts/0 00:00:01 /opt/app/mysql/5.7.13/bin/mysqld --defaults-file=/etc/f
--OK,启动成功,接下来运行mysql_upgrade升级数据字典!
六、升级数据库(升级数据字典)
1、运行mysql_upgrade升级数据字典
[root@rac1 ~]# /opt/app/mysql/5.7.13/bin/mysql_upgrade -uroot -pxxxx
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.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
er OK
Upgrading the sys schema.
Checking databases.
…………………………………………………………………
…………………………………………省略若干输出信息
sys.sys_config OK
Upgrade process completed successfully.
Checking if update is needed.
--OK,升级成功,接下重启MySQL实例!
2、重启MySQL 5.7.13实例
[root@rac1 ~]# /opt/app/mysql/5.7.13/bin/mysqladmin -uroot -pwuyong -S /tmp/mysql3376.sock shutdown [root@rac1 ~]# /opt/app/mysql/5.7.13/bin/mysqld --defaults-file=/etc/f &
3、确认升级是否成功
# 升级成功后会多出一个sys库
[root@rac1 ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.13-log MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| duobao |
| mysql |
| performance_schema |
| sys |
| test |
| wuyong |
+--------------------+
7 rows in set (0.00 sec)
七、升级后的相关操作
1、修改环境变量
将/etc/profile文件中的export PATH=/opt/app/mysql/5.6.29/bin:$PATH替换成export
PATH=/opt/app/mysql/5.7.13/bin:$PATH
2、Cp 5.7.13的启动脚本到/etc/init.d目录下
cp /etc/init.d/mysql /etc/init.d/mysql_5.6
cp /opt/app/mysql/5.7.13/support-files/mysql.server /etc/init.d/mysql
八、升级回退
1、关闭MySQL 5.7.13实例
[root@rac1 ~]# /etc/init.d/mysql stop
Shutting down MySQL.. [ OK ]
2、通过备份恢复数据库
[root@rac1 ~]# cd /data/mysql/
[root@rac1 mysql]# ll
total 8
drwxr-xr-x 5 mysql mysql 4096 May 25 14:35 mysql3376
drwxr-xr-x 5 mysql mysql 4096 May 25 14:35 mysql3376.bak
[root@rac1 mysql]# mv mysql3376 mysql3376_5713
[root@rac1 mysql]# mv mysql3376.bak mysql3376
[root@rac1 mysql]# ll
total 8
drwxr-xr-x 6 mysql mysql 4096 Jul 6 14:08 mysql3376
drwxr-xr-x 5 mysql mysql 4096 May 25 14:35 mysql3376_5713
3、通过备份恢复mysql 5.6.29的配置文件
[root@rac1 ~]# cp /etc/f /etc/f_5713
[root@rac1 ~]# mv /etc/5.6.29_f /etc/f
4、通过备份恢复mysql 5.6.29的启动脚本
[root@rac1 ~]# cp /etc/init.d/mysql /etc/init.d/mysql_5.7.13
[root@rac1 ~]# mv /etc/init.d/mysql_5.6 /etc/init.d/mysql
5、启动mysql 5.6.29实例
[root@rac1 ~]# /etc/init.d/mysql start
Starting MySQL.. [ OK ]
[root@rac1 ~]# ps -ef | grep mysqld | grep -v grep
root 7509 1 0 14:25 pts/0 00:00:00 /bin/sh /opt/app/mysql/5.6.29/bin/mysqld_safe --datadir=/data/mysql/mysql3376/data --pid-file=/data/mysql/mysql3376/data/rac1.localdomain.pid mysql 8264 7509 7 14:25 pts/0 00:00:00 /opt/app/mysql/5.6.29/bin/mysqld --
basedir=/opt/app/mysql/5.6.29 --datadir=/data/mysql/mysql3376/data --plugin-
dir=/opt/app/mysql/5.6.29/lib/p6
6、修改环境变量
将/etc/profile文件中的export PATH=/opt/app/mysql/5.7.13/bin:$PATH替换成export
PATH=/opt/app/mysql/5.6.29/bin:$PATH
7、连接MySQL验证是否回退成功
root@rac1 ~]# mysql -uroot -pwuyong
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.29-log MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> \s
--------------
mysql Ver 14.14 Distrib 5.6.29, for linux-glibc2.5 (x86_64) using EditLine wrapper
Connection id: 2
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.6.29-log MySQL Community Server (GPL)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /tmp/mysql3376.sock
Uptime: 1 min 54 sec
Threads: 1 Questions: 10 Slow queries: 0 Opens: 70 Flush tables: 1 Open tables: 63 Queries per second avg: 0.087
--------------。