MySQL版本升级

摘要:
MySQL版本升级MySQL在使用MySQL的过程中经常会因为一些bug或新特性而升级。通常,有两种方法可以升级生产环境:就地升级和逻辑升级。逻辑升级是一个相对纯粹的导入和导出,需要很长时间,并且是最稳定的。一整个过程停止--˃backup--˃pull--˃updateⅡ。开始2.1。查看当前MySQL版本[root@mastermysql]#Mysql-e“s”|grep'Serverversion'|awk'{print$3}'5.6.392.2数据库关闭[root@mastermysql]#mysql-e“SETGLOBALinnodb_fast_shutdown=0;”[root@mastermysql]#/etc/init.d/mysql.serverstop关闭mysql..成功!
MySQL版本升级

MySQL使用过程中常因为某些bug或者新特性需求进行版本升级,生产环境一般升级有两种方法,原地升级和逻辑升级,逻辑升级就是比较纯粹的导入导出,耗时较长,最稳当。原地升级则是用新版本拉起旧版本数据后更新元数据,耗时少,可能很小概率会有问题,这里我们走一遍原地升级的流程。

Ⅰ、整体流程

停库 ---> 备份 ---> 拉起 ---> 更新

Ⅱ、上手

2.1 查看当前MySQL版本

[root@master mysql]# mysql -e "s" |grep 'Server version' |awk '{print $3}'
5.6.39

2.2 停库&&备份

注意停库的时候慢一点,最大程度保证数据完整性(full purge and a change buffer merge before shutting down)

[root@master mysql]# mysql -e "SET GLOBAL innodb_fast_shutdown = 0;"
[root@master mysql]# /etc/init.d/mysql.server stop
Shutting down MySQL.. SUCCESS! 
[root@master mysql]# cp -r /data/mysql /data/mysql_bak

2.3 新版本启动

[root@master local]# unlink mysql
[root@master local]# ln -s mysql-5.7.23-el7-x86_64/ mysql
[root@master local]# /etc/init.d/mysql.server start
Starting MySQL.. SUCCESS!

2.4 更新元数据

这里用了-s参数(--upgrade-system-tables),表示只更新系统表(元数据表),不更新数据,数据方面高版本是兼容低版本的,具体用法参考mysql_upgrade --help
更新完记得重启一哈

[root@master local]# mysql_upgrade -s
The --upgrade-system-tables option was used, databases won't be touched.
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
Upgrading the sys schema.
Upgrade process completed successfully.
Checking if update is needed.
[root@master ~]# /etc/init.d/mysql.server restart
Shutting down MySQL.... SUCCESS! 
Starting MySQL. SUCCESS! 

2.5 没关系,咱们看结果

[root@master local]# mysql -e "s" |grep 'Server version' |awk '{print $3}'
5.7.23

Ⅲ、插两句

①可以跨大版本升级,但必须先备份,必须
②互联网公司升级方案:主从--->升级从--->主从互换--->升级原主
③降级也是用这个命令,mysql_upgrade -s,一般不降级,了解一下,小版本之间可以降级 5.7.2到5.7.1这种 ,大版本之间是不可以的

免责声明:文章转载自《MySQL版本升级》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇react antd中codemirror的基本使用delphi md5 加密下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【转】mysql字符串函数

对于针对字符串位置的操作,第一个位置被标记为1(即:第一个字母索引为1)。 ASCII(str) 返回字符串str的 最左面字符的ASCII代码值。如果str是空字符串, 返回0。如果str是NULL,返回NULL。 mysql> select ASCII('2'); -> 50mysql> select ASCII(2...

MySQL sql语句获取当前日期|时间|时间戳

1.1 获得当前日期+时间(date + time)函数:now() MySQL> select now(); +———————+ | now() | +———————+ | 2013-04-08 20:56:19 | +———————+ 除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数: current_time...

MySQL数据库

MySQL数据库 一、库操作 1、创建数据库 1.1语法:CREATE DATABASE数据库名[charset utf8]; 1.2数据库命名规则:可以由字母、数字、下划线、@、#、$,区分大小写,唯一性,不能使用关键字如 create select,不能单独使用数字,最长128位,#基本上跟。,python或者js的命名规则一样。 2、数据库相关操作:...

zabbix监控mysql报警

zabbix监控mysql性能 在Zabbix的监控系统中通常是由Zabbix Server与Zabbix Agent一起配合实现监控,在Zabbix Agent内置了很多监控基础的监控项。 这些监控项都是CPU, 文件系统, 网络,磁盘等基础的监控项,对于自己开发服务的监控,Zabbix提供了良好框架为用户实现监控和报警,下面将以为MySQL添加监控为例...

mysql max_allowed_packet过小导致的prepare失败

最近公司一台阿里云上模拟环境突然好好地就出错了额,总提示:"Unknown prepared statement handler (stmt) given to DEALLOCATE PREPARE",原以为是sql语法所致,确定没有问题后,最后确定是因为prepare对应的会话变量为null所知,mysql的max_allowed_packet被篡改为1...

Mysql --数据的增删改

插入数据 INSERT 更新数据 UPDATE 删除数据 DELETE 一、 在mysql管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括 1.使用insert实现数据的插入 2.update实现数据的更新 3.使用delete实现数据的删除 4.使用select查询数据以及。 二、插入数据 insert 1. 插入完整数据(顺...