广告招募

当前位置:欧亚贸易网 > 技术中心 > 所有分类

mysql升级,DBA:MySQL 5.7升级8.0全过程

2023年06月21日 11:48:17      来源:安徽思成仪器技术有限公司 >> 进入该公司展台      阅读量:13

分享:

为什么升级到MySQL 8.0

基于安全考虑基于性能和 稳定性考虑:

mgr复制 ,并行复制writeset 等功能,性能提升新的功能:

Hash join ,窗口函数,DDL即时,json 支持原始环境中版本太多,统一版本8.0版本基本已到稳定期,可以大量投入生产环境中

升级之前需要了解

数据库字典升级

schema,mysql,information_schema,performance_schema,sys

比如:密码测试 mysql_native_password → caching_sha2_password

关键词是不是兼容

关键词 added in查询

SQL是不是兼容

Group by处理上的不兼容,触发器mysql升级,存储过程

5.6 可以跑select id,count(*)from group by name;

5.7,8.0是不是允许的 sql_mode控制

mysql升级 upgrade_phpnow升级mysql版本_mysql升级

数据文件存储格式是不是可以直接升级

Perconal 和 mysql 存储引擎一直,可以兼容

现有应用的兼容性是否满足

自定义函数,一些不规范的SQL语句等等

密码策略

What Is New in MySQL 8.0

作为DBA需要基本了解8.0的一些功能,参考:

phpnow升级mysql版本_mysql升级_mysql升级 upgrade

phpnow升级mysql版本_mysql升级 upgrade_mysql升级

phpnow升级mysql版本_mysql升级 upgrade_mysql升级

升级准备事项

已经了解8.0的特性,应对升级需要事*行验证和准备工作测试库升级,应用验证

mysql升级 upgrade_mysql升级_phpnow升级mysql版本

数据库升级,末知问题发生

f配置信息调整

不兼容的操作方法,影响复制

一个平稳的过滤,列如先升级一个从库,到所有从库

最少停机时间,同样生产数据恢复到环境,进行模拟升级,评估时间

怎样进行数据验证:行数,表的数量 等等

考虑回滚方案

数据库备份

升级前检查

Mysql8.0还是提供了很多方便,不像之前一样5.6升级5.7那样。现在可以通过mysql shell进行确认。

下面2种方式


mysql升级_phpnow升级mysql版本_mysql升级 upgrade

#mysqlsh root:123456@192.168.244.130:3410 -e 'util.checkForServerUpgrade({"targetVersion":"8.0.19","configPath":"/etc/f"})';
MySQL JS > util.checkForServerUpgrade('root@192.168.244.130:3410', {"password":"123456", "targetVersion":"8.0.11", "configPath":"/etc/f"})

phpnow升级mysql版本_mysql升级 upgrade_mysql升级
phpnow升级mysql版本_mysql升级 upgrade_mysql升级
mysql升级_phpnow升级mysql版本_mysql升级 upgrade

按照提示的要求进行更改

mysql升级_mysql升级 upgrade_phpnow升级mysql版本

虽然shell做的很好,但还是存在一些缺陷。

比如以下内容都不会存在提示:

1. basedir,

2. sql_mode ,

3. 半同步配置,

4. 密码策略:default_authentication_plugin = mysql_native_password

开始升级

下载对应的tar包

mysql升级 upgrade_phpnow升级mysql版本_mysql升级

下面是单机升级,高可用架构下 需要先升级从库,在逐步升级主库。

执行mysql_upgrade命令,会提示如下:


#/mysql8.0.19/bin/mysql_upgrade -uroot -p123456

mysql升级_phpnow升级mysql版本_mysql升级 upgrade

在MySQL 8中mysql_upgrade客户端现已弃用。升级客户端执行的操作现在由服务器完成。

要升级,请使用较旧的数据目录启动新的 MySQL 二进制文件。自动修复用户表。升级后不需要重新启动。

所以必须在测试环境模拟准备对应SQL语句

正确操作如下:

1)登录服务器进行正常关闭:innodb_fast_shutdown是默认是1mysql升级,常常认为是安全关闭


关闭innodb参数确认


mysql> show variables like 'innodb_fast_shutdown';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
|
innodb_fast_shutdown | 1 |
+----------------------+-------+
1 row in set (0.00 sec)

确保数据都刷到硬盘上,更改成0

mysql> set global innodb_fast_shutdown=0;
Query OK, 0 rows affected (0.01 sec)
mysql> shutdown;
Query OK, 0 rows affected (0.00 sec)
*进行备份。

2)用mysql8.0.19客户端直接启动

启动mysql服务


[root@ss30 bin]# /opt/mysql8.0.19/bin/mysqld_safe --defaults-file=/etc/f --user=mysql &
[1] 15400
[root@ss30 bin]# 2020-04-25T13:07:16.591560Z mysqld_safe Logging to '/opt/data3400/logs/error.log'.
2020-04-25T13:07:16.636879Z mysqld_safe Starting mysqld daemon with databases from /opt/data3400/mysql
##打开另一个窗口查看error日志
[root@ss30 ~]# tail -f /opt/data3400/logs/mysql_error.log

登录服务器确认

[root@ss30 ~]# mysql -uroot -p -S /opt/data3400/mysql/mysql.sockEnter
password:
Welcome to the MySQL monitor. Commands end with ; or /g.Your MySQL connection id is 10Server version: 8.0.19 MySQL Community Server - GPLCopyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.19 |
+-----------+
1 row in set (0.01 sec)

无myisam引擎

mysql> SELECT table_schema,table_name,engine
FROM information_schema.tables
where engine!='InnoDB';

剩下的就是验证 和 业务确认否应用正常。

总结

整个从升级准备开始 到结束,中间包含很多细致的工作。比如版本确认,功能确认,测试,准备,备份,验证,高可用切换等等。前期需要投入很多精力进行准备,这样才能做到一步到位。

升级完,下一步踏上8.0的使用旅程。

mysql升级_mysql升级 upgrade_phpnow升级mysql版本


mysql升级_phpnow升级mysql版本_mysql升级 upgrade
最后给大家分享我写的SQL两件套:《SQL基础知识第二版》《SQL高级知识第二版》的PDF电子版。里面有各个语法的解释、大量的实例讲解和批注等等,非常通俗易懂,方便大家跟着一起来实操。

有需要的读者可以下载学习,在下面的公众号「数据前线」(非本号)后台回复关键字:SQL,就行
数据前线
mysql升级_mysql升级 upgrade_phpnow升级mysql版本

后台回复关键字:1024,获取一份精心整理的技术干货后台回复关键字:进群,带你进入高手如云的。

版权与免责声明:
1.凡本网注明"来源:欧亚贸易网"的所有作品,版权均属于欧亚贸易网,转载请必须注明欧亚贸易网。违反者本网将追究相关法律责任。
2.企业发布的公司新闻、技术文章、资料下载等内容,如涉及侵权、违规遭投诉的,一律由发布企业自行承担责任,本网有权删除内容并追溯责任。
3.本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。 4.如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系。