最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

mysql数据库主从不同步的解决方法_MySQL

来源:动视网 责编:小采 时间:2020-11-09 20:07:15
文档

mysql数据库主从不同步的解决方法_MySQL

mysql数据库主从不同步的解决方法_MySQL:故障描述: 进入从数据库 mysql> show slave status\G; 结果如下: ... Slave_IO_Running: Yes Slave_SQL_Running: No Last_Errno: 1062 ... 原因: 程序可能在slave上进行了写操作 可能是slave机器重启后,事物回滚造成的
推荐度:
导读mysql数据库主从不同步的解决方法_MySQL:故障描述: 进入从数据库 mysql> show slave status\G; 结果如下: ... Slave_IO_Running: Yes Slave_SQL_Running: No Last_Errno: 1062 ... 原因: 程序可能在slave上进行了写操作 可能是slave机器重启后,事物回滚造成的


故障描述:

进入从数据库

mysql> show slave status\G;

结果如下:

...

Slave_IO_Running: Yes

Slave_SQL_Running: No

Last_Errno: 1062

...

原因:

程序可能在slave上进行了写操作

可能是slave机器重启后,事物回滚造成的

多数是第二种造成的

解决方法一:忽略错误后继续同步

该方法适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况

mysql> slave stop;

mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

mysql> slave start;

解决方法二:强制性从某一个点开始同步

此方法会有部分没有同步的数据丢失,后续主服务器上删除记录同步也会有一些错误信息,不会影响使用

到主服务器上查看主机状态:

记录File和Position对应的值。

mysql> show master status;

+------------------+-----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+-----------+--------------+------------------+

| mysql-bin.000021 | 135617782 | | |

+------------------+-----------+--------------+------------------+

1 row in set (0.00 sec)

3.到slave服务器上执行手动同步:

mysql> change master to

> master_host='master_ip',

> master_user='user',

> master_password='pwd',

> master_port=3307,

> master_log_file='mysql-bin.000021',

> master_log_pos=135617782;

1 row in set (0.00 sec)

mysql> slave start;

1 row in set (0.00 sec)

再次查看slave状态发现:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

...

Seconds_Behind_Master: 0

解决方法三:重新做主从,完全同步

该方法适用于主从库数据相差较大,或者要求数据完全统一的情况

1.进入主库,进行数据备份

mysqldump -u root -p --opt --master-data --single-transaction -B > mysql.bak.sql

2.把mysql备份文件传到从库上,导入从库

mysql > stop slave;

mysql -u root -p < mysql.bak.sql

3. 从备份文件中找到file和position

grep -i "CHANGE MASTER TO" mysql.bak.sql会得到以下类似内容:

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000021', MASTER_LOG_POS=135617782;

4.设置从库同步

mysql> change master to

> master_host='master_ip',

> master_user='user',

> master_password='pwd',

> master_port=3307,

> master_log_file='mysql-bin.000021',

> master_log_pos=135617782;

mysql> slave start;

1 row in set (0.00 sec)

再次查看slave状态发现:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

...

Seconds_Behind_Master: 0

文档

mysql数据库主从不同步的解决方法_MySQL

mysql数据库主从不同步的解决方法_MySQL:故障描述: 进入从数据库 mysql> show slave status\G; 结果如下: ... Slave_IO_Running: Yes Slave_SQL_Running: No Last_Errno: 1062 ... 原因: 程序可能在slave上进行了写操作 可能是slave机器重启后,事物回滚造成的
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top