mysql从5.5直接升级到5.7后,执行mysql_upgrade速度很慢且执行结束后数据目录大小增加一倍及 mysqlpump备份出现1577错误
mysql官网不支持夸大版本升级,比如跳过5.6直接升级到5.7,但由于一些客观原因,项目需要从5.5直接升级到5.7,以下是具体操作
1、备份之前mysql,(数据量少,可直接拷贝安装目录及data目录和配置文件,本例使用的为Percona XtraBackup工具进行的备份)
2、将data目录移出mysql5.5安装目录
3、解压mysql5.7版本
4、修改5.7需要配置文件my.cnf,添加datadir,指向5.5数据目录
5、初始化,该步骤可选,(新安装数据库,或者数据目录不存在,可执行如下命令初始化数据目录,本例中不需要执行如下操作)
bin/mysqld --initialize --user=mysql
6、执行ssl相关操作
bin/mysql_ssl_rsa_setup
7、启动mysql
8、此时数据目录还是5.5的,需要执行mysql_upgrade进行升级,在执行表修复前,需要确认一个参数innodb_file_per_table,mysql官网对该参数的解释如下
该参数在5.5版本默认为OFF,所有表和索引都导入一个共享文件中,名为ibdata1,但在5.6.7及以后版本,改参数被默认设置为ON,即每张表都有对应的表和索引存储文件,每个schema下,每个frm文件都有对应的ibd文件。
在执行mysql_upgrade时,会修复系统表,并且如果该参数在5.5和5.7版本均使用默认值,则会将之前共享表和索引的存储方式改为每张表单独存储表和索引的形式,故会出现拷贝复制的操作,如果数据量比较大,则用时就会很长,
使用nnodb_file_per_table=1,及表和索引单独存储的优缺点,可查看mysql官网介绍。
9、使用mysql_upgrade检测并修复表
使用方法与mysql命令登录命令行一样,mysql会自动检测当前表并自动修复
mysql_upgrade -uroot -p
10、修复完成后,若发现mysql启动有server-key.pem相关的ssl错误,则是server-key.pem文件权限问题
chmod 644 server-key.pem
11、但此时若执行mysqlpum备份数据,可能会出现异常
mysqlpump --user=root --password mytest > mytest.sql
错误信息:
mysqlpump: [ERROR] (1577) Cannot proceed because system tables used by Event Scheduler were found damaged at server start
Dump process encountered error and will not continue.
mysqlpump: [ERROR] (1577) Cannot proceed because system tables used by Event Scheduler were found damaged at server start
Dump process encountered error and will not continue.
mysqlpump: [ERROR] (1577) Cannot proceed because system tables used by Event Scheduler were found damaged at server start
Dump process encountered error and will not continue.
mysqlpump: [ERROR] (1577) Cannot proceed because system tables used by Event Scheduler were found damaged at server start
Dump process encountered error and will not continue.
mysqlpump: [ERROR] (1577) Cannot proceed because system tables used by Event Scheduler were found damaged at server start
Dump process encountered error and will not continue.
mysqlpump: [ERROR] (1577) Cannot proceed because system tables used by Event Scheduler were found damaged at server start
Dump process encountered error and will not continue.
mysqlpump: [ERROR] (1577) Cannot proceed because system tables used by Event Scheduler were found damaged at server start
Dump process encountered error and will not continue.
mysqlpump: [ERROR] (1577) Cannot proceed because system tables used by Event Scheduler were found damaged at server start
Dump process encountered error and will not continue.
mysqlpump: [ERROR] (1577) Cannot proceed because system tables used by Event Scheduler were found damaged at server start
Dump process encountered error and will not continue.
解决方法:重启mysql服务 (本例中是这样解决的问题)
重新执行mysqlpump
Dump progress: 1/28 tables, 0/353 rows
Dump progress: 36/343 tables, 0/19746 rows
Dump progress: 180/343 tables, 6151/19746 rows
Dump completed in 3675 milliseconds
数据被正确备份下来,且备份速度很快,从备份文件可以看到,内容与mysqldump备份有很多不同
本次只是简单尝试mysqlpump,待后续再对mysqlpump做深入了解
mysql从5.5直接升级到5.7后,执行mysql_upgrade速度很慢且执行结束后数据目录大小增加一倍及 mysqlpump备份出现1577错误的更多相关文章
- 升级PHPstudy自带的mysql版本 从5.5升级到5.7.22
原文:升级PHPstudy自带的mysql版本 从5.5升级到5.7.22 版权声明:请注意:如需转载请注明出处. https://blog.csdn.net/qq_32534555/article/ ...
- 将mysql从5.5.25升级到8.0.12
将mysql从5.5.25升级到8.0.12过程中遇到几个问题,记录如下: 将数据库安装好后,导入原来的数据,启动tomcat,报错unable to load authentication ca ...
- Centos MySQL 5.7安装、升级教程
MySQL 5.7安装.升级笔记分享: 卸载当前的 MySQL 查看当前 MySQL 版本: ? 1 2 [root@coderknock ~]# mysql -V mysql Ver 14.14 D ...
- MySQL 5.7 mysqlpump 备份工具说明
背景: MySQL5.7之后多了一个备份工具:mysqlpump.它是mysqldump的一个衍生,mysqldump就不多说明了,现在看看mysqlpump到底有了哪些提升,可以查看官方文档,这里针 ...
- centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobackupex/Xtrabackup 第四十节课
centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobacku ...
- 关于mysql安装后在客户端cmd插入语句无法执行的问题
关于mysql安装后在客户端cmd插入语句无法执行的问题 因为windows cmd默认字符集是gbk,当character_set_client=utf8时,cmd中出现中文会报错:characte ...
- mysql实战45讲读书笔记(二) 一条SQL更新语句是如何执行的 极客时间
前面我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块.相信你还记得,一条查询语句的执行过程一般是经过连接器.分析器.优化器.执行器等功能模块,最后到达存储引擎. 那么,一条更新语 ...
- mysql实战45讲读书笔记(一) 一条SQL查询语句是如何执行的
我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题.同样,对于MySQL的学习也是这样.平时我们使用数据库,看到的通常都是一个整体.比如,你有个最简单的表 ...
- Python进阶----索引原理,mysql常见的索引,索引的使用,索引的优化,不能命中索引的情况,explain执行计划,慢查询和慢日志, 多表联查优化
Python进阶----索引原理,mysql常见的索引,索引的使用,索引的优化,不能命中索引的情况,explain执行计划,慢查询和慢日志, 多表联查优化 一丶索引原理 什么是索引: 索引 ...
随机推荐
- 小tips:JS严格模式(use strict)下不能使用arguments.callee的替代方案
在函数内部,有两个特殊的对象:arguments 和 this.其中, arguments 的主要用途是保存函数参数, 但这个对象还有一个名叫 callee 的属性,该属性是一个指针,指向拥有这个 a ...
- Dynamics AX 2012 性能优化之 SQL Server 复制
Dynamics AX 2012 性能优化之 SQL Server 复制 分析数据滞后 在博文 Dynamics AX 2012 在BI分析中建立数据仓库的必要性 里,Reinhard 阐述了在 AX ...
- 利用SurfaceView显示正弦曲线,仿造示波器
众所周知,view是通过刷新来重绘视图的,Android系统通过发出VSYNC信号来进行屏幕重绘,刷新的时间间隔为16ms,如果在16ms内view完成你所需要的所有操作,那么用户在视觉上就不会产生卡 ...
- C# 简单实现直线方程,抛物线方程
本例子是简单的在WinForm程序中实现在坐标系中绘制直线方程,抛物线方程,点.重新学习解析几何方面的知识.仅供学习分享使用,如有不足之处,还请指正. 涉及知识点: 直线方程的表达方式:一般表达式Ax ...
- LeetCode题解之Squares of a Sorted Array
1.题目描述 2.问题分析 使用过两个计数器. 3.代码 class Solution { public: vector<int> sortedSquares(vector<int& ...
- 关于一体机外卖单不打印外卖单号FAQ(适用正餐6.0.09,轻餐4.0.6.1,轻餐4.0.6.2)
适用情景:升级版本后打印机打印出的外卖小票不出现外卖单号. 解决方案:设置-功能设置-小票设置-小票自定义-前台小票-外卖订单-------选择编辑,选中右侧中外卖单号或者外卖订单编号,点击保存即可. ...
- java一个数分解的质因数java
import java.util.Scanner; /** * Created by Admin on 2017/3/18. */ public class Test01 { public stati ...
- css属性总结
前言 有些属性不是很常用,但是工作中遇到了,记录一下,方便学习. 1.text-indent text-indent 属性规定文本块中首行文本的缩进.主要实现就像word那种首行缩进的效果. 详解ht ...
- idea2018版tomcat基本配置
前言 在配置tomcat之前,要先创建一个javaweb的工程 打开idea的主界面,在菜单中点击File,出现以下的图 点击选择 Application Server 点击选择 Tomcat Ser ...
- 【MM系列】SAP的库存管理
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP的库存管理 前言部分 库存 ...