MySQL5.7二进制安装在Unix/Linux上升级时,分为就地和逻辑升级方法。

注意:目录路径请根据实际情况修改

 

一 、就地升级

就地升级包括关闭旧的MySQL服务器,用新的MySQL服务器替换旧的MySQL二进制文件或软件包,在现有数据目录上重新启动MySQL,以及运行mysql_upgrade。

官网下载所需的版本。

 

1、数据库生产一定要记得数据库备份,通常采用xtrabackup热备份

innobackupex --defaults-file=/etc/my.cnf --user=root --password=kkk123456 /u02/mysql_backup/full

 

2、关闭数据库

service mysqld stop

 

也可以以下方式关闭,本次未使用:

配置MySQL以通过设置innodb_fast_shutdown为 执行慢速关闭 0。

mysql -u root -p --execute="SET GLOBAL innodb_fast_shutdown=0"

在关闭过程中,InnoDB执行完全清除并在关闭之前更改缓冲区合并,这可确保在发布版本之间存在文件格式差异时完全准备好数据文件。

关闭旧的MySQL服务器

mysqladmin -u root -p shutdown

 

3、解压数据库软件mysql-5.7.36到新目录下,如/data/mysql-5.7.36,并且设定权限

chown -R mysql.mysql /data/mysql-5.7.36

chmod -R 775 /data/mysql-5.7.36

 

4、复制my.cnf到当前数据库软件目录、并修改安装目录

basedir=/data/mysql-5.7.36/

 

5、启动新版本数据库

nohup /data/mysql-5.7.36/bin/mysqld_safe --defaults-file=/data/mysql-5.7.36/my.cnf --datadir=/data/mysqlware/mysql/data --user=mysql &

 

6、开始更新数据库字典(重要)

./mysql_upgrade -S /tmp/mysql.sock -P 8079 -uroot -p

 

#mysql_upgrade检查所有数据库中的所有表是否与当前版本的MySQL不兼容。mysql_upgrade还会升级mysql系统数据库,以便可以利用新的权限或功能

#更新信息

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.

 

完成后无报错提示更新成功。

 

再次访问数据库,确认版本是否更新成功

select version();

7、重新设置开机自启动服务、环境变量、/usr/bin的mysql软连接

 

二、逻辑升级

逻辑升级涉及使用备份或导出实用程序(如mysqldump)从旧MySQL实例导出SQL ,安装新的MySQL服务器以及将SQL应用于新的MySQL实例。

简单说明逻辑升级就是导出数据,然后升级,最后再导入数据;安全性高,主要针对数据量不大的数据库;常用的工具:mysqldump和Xtrabackup。

 

1、从以前的MySQL安装中导出现有数据:

2、 关闭旧的MySQL服务器

mysqladmin -u root -p shutdown

3、安装MySQL 5.7

复制’root’@‘localhost’ 显示在屏幕上的临时密码或写入错误日志以供日后使用。

4、 使用新数据目录启动MySQL 5.7服务器:

mysqld_safe --user=mysql --datadir=/path/to/5.7-datadir

5、 重置root密码:

shell> mysql -u root -p

Enter password: **** <- enter temporary root password

mysql> ALTER USER USER() IDENTIFIED BY 'your new password';

6、导入数据到新的MySQL服务器中

7、 运行mysql_upgrade

mysql_upgrade -u root -p

 

mysql_upgrade检查所有数据库中的所有表是否与当前版本的MySQL不兼容。mysql_upgrade还会升级mysql系统数据库,以便您可以利用新的权限或功能。

注意 mysql_upgrade不会升级帮助表的内容。 8、关闭并重新启动MySQL服务器以确保对系统表所做的任何更改都生效。 mysqladmin -u root -p shutdown mysqld_safe --user=mysql --datadir=/path/to/5.7-datadir