Resolve MySQL Master never sync
Today, MySQL's master and slave databases are not synchronized.
First on the Master library:
Mysql>show processlist; See if the next process is too much sleep. Found to be normal.
Show master status; also normal.
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)
Go to the slave and check it out.
Mysql> Show Slave Status\g
Slave_io_running:yes
Slave_sql_running:no
Visible is slave different steps
Two workarounds are described below:
Method one: After ignoring the error, continue syncing
This method is applicable to the case that the data of master-slave database is not very different, or the data can not be completely unified, the data requirements are not strict.
Solve:
Stop slave;
#表示跳过一步错误, the following numbers are variable
Set global sql_slave_skip_counter = 1;
Start slave;
Then use mysql> Show slave status\g to view:
Slave_io_running:yes
Slave_sql_running:yes
OK, now the master-slave synchronization state is normal ...
Mode two: Re-master from, fully synchronized
This method is suitable for the case that the master-slave database data is large or the data is completely unified.
The steps to resolve are as follows:
1. Advanced Master Library, lock table, prevent data write
Use the command:
Mysql> flush tables with read lock;
Note: This is locked to a read-only state, and the statement is case insensitive
2. Perform data backup
#把数据备份到mysql. bak.sql file
[[email protected] MySQL] #mysqldump-uroot-p-hlocalhost > Mysql.bak.sql
Note here: Database backups must be done on a regular basis, with shell scripts or Python scripts, to make sure the data is foolproof
3. View Master Status
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. Upload the MySQL backup file to the slave library for data recovery
#使用scp命令
[Email protected] mysql]# SCP mysql.bak.sql [email protected]:/tmp/
5. Stop the state from the library
mysql> stop Slave;
6. Then run the MySQL command from the library, import the data backup
Mysql> Source/tmp/mysql.bak.sql
7. Set synchronization from the library, note that the synchronization point is in the main library show Master status information | file| Position two items
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. Re-open from sync
mysql> start slave;
9. View sync Status
Mysql> Show slave status\g View:
Slave_io_running:yes
Slave_sql_running:yes
Resolve MySQL Master never sync issues