快捷搜索:

MySQL升级

 
    目前未在生产环境中升级过数据库版本,倒是在测试环境跟开发环境升级过。
 
    可以通过mysqldump sql文件进行升级,也可以通过mysql_upgrade升级,前者耗时较长,且需要足够量的磁盘空间,本文暂不讨论,升级使用mysql_upgrade方式。   
 


 
    如果转载,请注明博文来源: www.cnblogs.com/xinysu/   ,版权归 博客园 苏家小萝卜 所有。望各位支持!
 


 
    如果是线上环境升级,常规来说分为以下几个步骤:
  1. 从库先升级
    1. 业务迁移,从库上若有只读业务或者其他,迁移到其他DB实例
    2. 从库备份
    3. 从库停止复制
    4. 升级
    5. 从库恢复复制(升级后主库仍是5.6版本,从库是5.7版本,注意是否有异常)
    6. 主从恢复正常
  2. 主从切换
  3. 新从库升级
    1. 新从库停止复制
    2. 新从库备份
    3. 升级
    4. 新从库恢复复制
    5. 主从恢复正常
    6. 恢复相关业务
    本文主要记录升级的详细步骤、主库5.6从库5.7有哪些问题以及如何从传统模式转变为GTID模式。

1 MySQL5.6升级到5.7版本

升级步骤简要如下:
  1. 安装新版本mysql,从库服务器安装5.7版本mysql
  2. 修改安装目录配置参数,修改从库的mysql配置文件,把 mysql 安装目录修改为 5.7版本的安装目录
  3. 关闭从库mysql服务
  4. 新版本mysql启动实例,使用5.7版本mysql启动待升级实例
  5. 升级字典,使用mysql_upgrade升级字典
  6. 检查,查看mysql log日志
 
#1 安装新版本mysql
## 下载mysql5.7.17,拷贝到server下的/opt文件目录下
## 解压,创建软连接,授权
tar zvxf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
ln -s /opt/mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql57
chown -R mysql:mysql /usr/data/mysql57
 
#2 修改配置参数
## 检查配置文件中那些配置是使用到了 安装目录,把使用到底都修改
旧:
basedir = /usr/local/mysql56
plugin-dir = /usr/local/mysql56/lib/plugin/
 
新:
basedir = /usr/local/mysql
plugin-dir = /usr/local/mysql/lib/plugin/
 
#3 关闭mysql
[root@sutest244 mysqlup]# /usr/local/mysql56/bin/mysqladmin --socket=/tmp/mysql3399.sock -uroot -p shutdown
Enter password:
[root@sutest244 mysqlup]# ps axu | grep mysql3399 | grep mysqld
[root@sutest244 mysqlup]#
 
#4 新版本启动mysql
[root@sutest244 mysqlup]# /usr/local/mysql/bin/mysqld --defaults-file=/data/mysqlup/mysql3399.cnf &
[1] 15477
[root@sutest244 mysqlup]# ps axu | grep mysql3399 | grep mysqld
mysql    15477 37.1 26.7 11931672 1037520 pts/4 Sl  03:34   0:05 /usr/local/mysql/bin/mysqld --defaults-file=/data/mysqlup/mysql3399.cnf
[root@sutest244 mysqlup]#
[root@sutest244 mysqlup]# vim /data/mysqlup/data/error.log
 
#4.1 检查
检查启动后的错误日志,看下是否有配置参数报错,如果有,修改
错误日志会有大量的字典信息报错,这个暂不处理,下个步骤修复
 
#5 升级字典
[root@sutest244 bin]# /usr/local/mysql/bin/mysql_upgrade --socket=/tmp/mysql3399.sock -uroot -p
Enter password:
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
省略...
检查用户数据库及表格
省略...
Upgrade process completed successfully.
Checking if update is needed.
 
#6 检查日志
查看log日志正常。
        

您可能还会对下面的文章感兴趣: