老男人百科 > 百科 > 正文

Mysql的主从数据库没有同步的解决办法

2023-04-29 21:01:34 阅读( 8430)

今天发现Mysql的主从数据库没有同步先上Master库:mysql>showprocesslist;查看下进程是否Sleep太多。

今天发现mysql的主从数据库不同步。

首先转到主资料库:

mysqlshow processlist检查进程是否睡眠过多。发现很正常。

Display the host status; Normal, too.

mysql show master status;

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

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

| mysqld-bin.000001 | 3260 | | mysql,test,information_schema |

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

1 row in set (0.00 sec)

在从机上再检查一遍

mysql show slave status\G

Slave_IO_Running: Yes

Slave_SQL_Running: No

可以看出,从机不同步

这里有两种解决方案:

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

这种方法适用于主从库数据差异不大,或者数据不能完全统一,数据要求不严格的情况。

求解:

stop slave;

#表示跳过一步错误,后面的数字是可变的。

set global sql_slave_skip_counter=1;

start slave;

Then use mysql to display the subordinate status \G View:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

好了,现在主从同步状态正常。

方式二:重新做主从,完全同步

这种方法适用于主从库数据差异较大,或者数据完全统一的情况。

求解步骤如下:

1.首先进入主库,锁定表以防止数据被写入。

使用命令:

mysql flush tables with read lock;

注意:锁是只读的,语句不区分大小写。

2.进行数据备份

#将数据备份到mysql.bak.sql文件。

[root@server01 mysql]#mysqldump -uroot -p -hlocalhost mysql.bak.sql

这里要注意一点:数据库备份一定要定期进行,可以使用shell脚本或者python脚本,方便保证数据万无一失。

3.检查主机状态

mysql show master status;

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

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

| mysqld-bin.000001 | 3260 | | mysql,test,information_schema |

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

1 row in set (0.00 sec)

4.将mysql备份文件传输到从机进行数据恢复。

#使用scp命令

[root@server01 mysql]# scp mysql.bak.sql root@192.168.128.101:/tmp/

5.停止奴隶状态

mysql stop slave;

6.然后从从库执行mysql命令,导入数据备份。

mysql source /tmp/mysql.bak.sql

7.从库设置同步,注意这里的同步点,就是主库显示主状态信息中的| File|位置。

change master to master_host='192.168.128.100', master_user='rsync', master_port=3306, master_password='', master_log_file='mysqld-bin.000001', master_log_pos=3260;

8.重新启动从属同步。

mysql start slave;

9.查看同步状态

mysql show slave status\G 查看:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

好了,同步完成啦。

猜你喜欢

Guessyoulike
长期自慰有什么后果(长期自慰有什么后果)
7个坏习惯易导致无精症(先天无精症能治好)
两性知识:排卵期的症状和体征(排卵行为)
女性引产后该怎么护理(女性屁屁怎么护理)
专题页