mysql dump 1449_跨版本mysqldump恢复报错Errno1449
已经有一套主从mysql,新增两个slave
主库Server version: 5.6.22-log MySQL Community Server (GPL)
旧从库Server version: 5.6.28-log MySQL Community Server (GPL)
新增SLAVE 1: Server version: 5.6.22-log MySQL Community Server (GPL)
新增SLAVE 2: Server version: 5.7.10-log MySQL Community Server (GPL)
重新初始化新的两个slave后,从就从库的mysqldump文件导入恢复,因为增加了--dump-slave参数,可以看到主库的位置。
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.001196', MASTER_LOG_POS=71925475;
dump文件导入完成后,在新增SLAVE 1执行:
change master to master_host='192.168.72.142', master_user='repl',master_password='password',master_port=3306,MASTER_LOG_FILE='mysql-bin.001196', MASTER_LOG_POS=71925475,MASTER_CONNECT_RETRY=30;
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Queueing master event to the relay log
Master_Host: 192.168.72.142
Master_User: repl
Master_Port: 3306
Connect_Retry: 30
Master_Log_File: mysql-bin.001201
Read_Master_Log_Pos: 821264848
Relay_Log_File: relay-bin.000002
Relay_Log_Pos: 792405
Relay_Master_Log_File: mysql-bin.001196
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1449
Last_Error: Error 'The user specified as a definer ('usr_pre'@'%') does not exist' on query. Default database: 'pre'. Query: 'SELECT `pre`.`_getAutoIncrement`(_utf8'taobaoSoHeader' COLLATE 'utf8_general_ci')'
Skip_Counter: 0
Exec_Master_Log_Pos: 72717597
Relay_Log_Space: 6129100284
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 1449
Last_SQL_Error: Error 'The user specified as a definer ('usr_pre'@'%') does not exist' on query. Default database: 'pre'. Query: 'SELECT `pre`.`_getAutoIncrement`(_utf8'taobaoSoHeader' COLLATE 'utf8_general_ci')'
Replicate_Ignore_Server_Ids:
Master_Server_Id: 142
Master_UUID: 6552d58f-7323-11e5-bc52-24b6fdf64510
Master_Info_File: /mysqldata/mysql_data/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State:
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp: 160217 09:44:22
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.00 sec)
用工具查看binlog日志内容,发现也出错了,网上查了一下,说是BUG
-bash-4.1$ mysqlbinlog --start-position=72717597 --stop-position=72717598 -d pre mysql-bin.001201
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#160216 20:15:34 server id 142 end_log_pos 120 CRC32 0xd9c6730a Start: binlog v 4, server v 5.6.22-log created 160216 20:15:34
BINLOG '
5hLDVg+OAAAAdAAAAHgAAAAAAAQANS42LjIyLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXAAEGggAAAAICAgCAAAACgoKGRkAAQpz
xtk=
'/*!*/;
ERROR: Error in Log_event::read_log_event(): 'Sanity check failed', data_len: 577005919, event_type: 111
ERROR: Could not read entry at offset 72717597: Error in log format or read error.
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
-bash-4.1$ mysqlbinlog --start-position=72717597 --stop-position=72717598 mysql-bin.001201
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#160216 20:15:34 server id 142 end_log_pos 120 CRC32 0xd9c6730a Start: binlog v 4, server v 5.6.22-log created 160216 20:15:34
BINLOG '
5hLDVg+OAAAAdAAAAHgAAAAAAAQANS42LjIyLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXAAEGggAAAAICAgCAAAACgoKGRkAAQpz
xtk=
'/*!*/;
ERROR: Error in Log_event::read_log_event(): 'Sanity check failed', data_len: 577005919, event_type: 111
ERROR: Could not read entry at offset 72717597: Error in log format or read error.
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
-bash-4.1$ mysqlbinlog --start-position=72717597 --offset=1 mysql-bin.001201
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#160216 20:15:34 server id 142 end_log_pos 120 CRC32 0xd9c6730a Start: binlog v 4, server v 5.6.22-log created 160216 20:15:34
BINLOG '
5hLDVg+OAAAAdAAAAHgAAAAAAAQANS42LjIyLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXAAEGggAAAAICAgCAAAACgoKGRkAAQpz
xtk=
'/*!*/;
ERROR: Error in Log_event::read_log_event(): 'Sanity check failed', data_len: 577005919, event_type: 111
ERROR: Could not read entry at offset 72717597: Error in log format or read error.
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
怀疑权限问题
主库5.6.22上执行
mysql> show grants for 'usr_pre'@'%';
+--------------------------------------------------------------------------------------------------------+
| Grants for usr_pre@% |
+--------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'usr_pre'@'%' IDENTIFIED BY PASSWORD '*EA8D6BC15C61128B3E5AB994B3EA12A9092114C5' |
| GRANT ALL PRIVILEGES ON `pre`.* TO 'usr_pre'@'%' |
+--------------------------------------------------------------------------------------------------------+
2 rows in set (0.02 sec)
旧SLAVE 5.6.28 备份导出的从库
mysql> show grants for 'usr_pre'@'%';
+--------------------------------------------------------------------------------------------------------+
| Grants for usr_pre@% |
+--------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'usr_pre'@'%' IDENTIFIED BY PASSWORD '*EA8D6BC15C61128B3E5AB994B3EA12A9092114C5' |
| GRANT ALL PRIVILEGES ON `pre`.* TO 'usr_pre'@'%' |
+--------------------------------------------------------------------------------------------------------+
2 rows in set (0.01 sec)
新SLAVE 1是5.6.22,执行报错
mysql> show grants for 'usr_pre'@'%';
ERROR 1141 (42000): There is no such grant defined for user 'usr_pre' on host '%'
在新SLAVE 1执行
mysql> GRANT USAGE ON *.* TO 'usr_pre'@'%' IDENTIFIED BY PASSWORD '*EA8D6BC15C61128B3E5AB994B3EA12A9092114C5' ;
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON `pre`.* TO 'usr_pre'@'%';
ERROR 1133 (42000): Can't find any matching row in the user table
flush privileges;
show grants for 'usr_pre'@'%';
发现已经恢复正常
开启slave后,可以正常复制。
-----------------------
处理新增SLAVE 2:跨一个大版本,5.7.10
执行下面语句时报错:
mysql> change master to master_host='192.168.72.142', master_user='repl2',master_password='password',master_port=3306,MASTER_LOG_FILE='mysql-bin.001196', MASTER_LOG_POS=71925475,MASTER_CONNECT_RETRY=30;
ERROR 1805 (HY000): Column count of mysql.slave_master_info is wrong. Expected 25, found 23. The table is probably corrupted
处理方法:
[mysql@lt-mysql02 mysql_backup]$ mysql_upgrade -s -uroot -p
Enter password:
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.
The sys schema is already up to date (version 1.5.0).
Found 0 sys functions, but expected 21. Re-installing the sys schema.
Upgrading the sys schema.
Upgrade process completed successfully.
Checking if update is needed.
重复执行上面语句,恢复正常
mysql_upgrade是一个检查和升级表的命令,用于检查当前表是否和mysql server版本兼容,例如从低版本的mysqldump导入了高版本的情况。也可以用于升级系统表。
执行该命令的时候,如果该命令发现有表的兼容性有问题,那么会做表升级,
如果发现表有问题,会做表修复,如果该命令无法修复,则需要用重建的方式手工修复表或索引。
推荐每次升级后都执行mysql_upgrade
mysql_upgrade参数-s的意思是只升级系统表,不修复数据表
--upgrade-system-tables, -s
Upgrade only the system tables, do not upgrade data.
mysql dump 1449_跨版本mysqldump恢复报错Errno1449相关推荐
- mysql恢复 报错_Mysql 数据恢复报错
1.测试mysql binlog 数据恢复功能,我的mysql版本是5.7.17 2.删了数据之后,执行show binlog events 命令得到如下记录 3.找到开始删除和结束删除的位置,然后执 ...
- mysql5.7 delimiter_percona MYSQL 5.7.13 5.7.14 MYSQLDUMP 导入报错delimiter (修改MYSQLDUMP代码)...
percona MYSQL 5.7.13 5.7.14 MYSQLDUMP 导入报错delimiter (修改MYSQLDUMP代码) 重庆八怪 2016-09-26 15:12:22 浏览1094 ...
- 【致敬嵌入式攻城狮第2期活动预热征文】解决瑞萨RA2E1开发板在RT-Thread的版本中编译报错 error: ‘board_cfg.h‘ file not found
解决瑞萨RA2E1开发板在RT-Thread的版本中编译报错 error: 'board_cfg.h' file not found 继上上周在RA2E1开发板上跑通了RT-Thread最新版本的代码 ...
- Swift5版本以上#selector报错解决
Swift5版本以上#selector报错解决 最近swift 版本变化较大,如果对一个按钮添加一个事件在oc想必都非常熟练,那么在 swift怎么去定义函数,以及函数传参呢 let btn = UI ...
- mysql远程一会不用卡住_连接远程MySQL数据库项目启动时,不报错但是卡住不继续启动的,...
连接远程MySQL数据库项目启动时,不报错但是卡住不继续启动的, 2018-03-12 17:08:52.532DEBUG[localhost-startStop-1]o.s.beans.factor ...
- RMAN备份恢复报错 ORA-19573: cannot obtain exclusive enqueue for datafile 5
RMAN备份恢复报错 ORA-19573: cannot obtain exclusive enqueue for datafile 5 用vi 编辑了一个数据文件 ,导致下面的错误: 验证还原 RM ...
- Access-Control-Allow-Origin跨域问题的报错以及解决
Access-Control-Allow-Origin跨域问题的报错以及解决 这是浏览器控制台报错详情,在前后端分离,前段需要传数据进入后端时报的错 解决方案:配置跨域过滤器 1.先复制以下代码(过滤 ...
- mysql 安装1364_安装完MySQL,在配置最后一步报错error Nr.1364
[原文:http://www.mysqlperformanceblog.com/2014/01/28/10-mysql-settings-to-tune-after-installation/基本配置 ...
- IDEA(2018)连接MySQL数据库失败的解决方法(报错08001)
IDEA(2018)连接MySQL数据库失败的解决方法(报错08001) 参考文章: (1)IDEA(2018)连接MySQL数据库失败的解决方法(报错08001) (2)https://www.cn ...
最新文章
- 2018-3-23论文一种新的群智能算法--狼群算法(框架结构+感想一点点)
- linux mysql 操作命令_linux的mysql操作命令
- AI产业落地风向标,2019全球智博会亮点回顾
- 给出a的定义 -- 指针 和 数组
- CentOS 6.5使用yum快速搭建LAMP环境
- 利用exif.js解决手机上传竖拍照片旋转90\180\270度问题
- poj3268(最短路)
- 线性表(一)——顺序表
- JSP、ASP、PHP Web应用程序怎么这么多P!
- python经典实例-终于明了python入门经典实例
- 限制新闻标题字数输出并用省略号代替
- 190712每日一句 生命的韧性
- c++11 多线程依次打印ABC
- 轻量级过程改进之项目启动
- 计算机音乐数字乐谱核爆神曲,核爆神曲——aLIEz钢琴谱钢琴简谱 数字谱 钢琴双手简谱.pdf...
- Android 7.0应用冷启动流程分析
- 元数据驱动的大数据服务平台
- 68个经典励志小故事|哲理小故事,让你终身受益(3)
- 三维空间中,向量在另外一个向量或者面上的投影
- 第五章 欧洲科技文明的起源