mysql主从版本,MySQL跨版本主从部署及问题

最近搞了个跨版本的MySQL主从同步,之前没搞过这个,遇到了一些问题,记录一下。

环境

主库:MySQL5.6.27 IP:192.168.100.1

从库:MySQL5.7.22 IP:192.168.100.2

计划部署过程

主库创建复制账号

create user 'repl'@'192.168.100.1' identified by 'password';

grant replication slave on *.* to 'repl'@'192.168.100.1';

主库进行全备

mysqldump -uuser -ppassword --all-databases --master-data --single-transaction > all_databases.sql

全备恢复到从库上

mysql -uroot -ppassword -h192.168.100.2 < all_databases.sql

从库设置复制相关信息

CHANGE MASTER TO

master_host='192.168.100.1',

master_port=3306,

master_user='repl'

master_password='password';

遇到问题及处理方法

数据恢复时间过长

# 加快备份恢复速度

# 禁用binlog,数据恢复过程不写入到日志中,可以加快恢复速度。

mysql -uroot -ppassword -h192.168.100.2

mysql > set sql_log_bin=0;

mysql > source all_databases.sql

恢复备份后创建账号报错

原因:

备份时备份了mysql.user数据库,MySQL5.7对权限表进行了升级,表结构有变更

处理方法:

使用mysql_upgrade升级数据库

mysql_upgrade --force

CHANGE MASTER报错

错误信息:

ERROR 1794 (HY000): Slave is not configured or failed to initialize properly. You must at least set --server-id to enable either a master or a slave.

原因:

mysql库中记录日志相关的表结构有变更

处理方法:

删除相关表并重新加载

# 删除表

use mysql

drop table innodb_index_stats;

drop table innodb_table_stats;

drop table slave_master_info;

drop table slave_relay_log_info;

drop table slave_worker_info;

# 重新加载表

mysql> source /usr/local/mysql3306/share/mysql_system_tables.sql

后续优化

遇到的问题都是由于mysql库中的表结构更改导致的。

以后再进行类似操作时,备份时可以只对用户数据库进行备份,这样不更改系统库的表结构,就不会遇到类似错误了。

权限表可以通过导出语句的方式进行备份,例如:

# 适用于MySQL5.6及以前版本

mysql -e "select distinct concat ('show grants for ','''',user,'''@''',host,'''',';') as query from mysql.user where user!='root'" |grep -v query >/tmp/showgrants.sql && mysql < /tmp/showgrants.sql |egrep -v 'Grants for|query'

或者使用pt-show-grants工具导出权限表

pt-show-grants -uroot -ppassword

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值