mysql 主从不同步问题

Posted 木木一一

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 主从不同步问题相关的知识,希望对你有一定的参考价值。

一、把主数据库(停止服务后)直接复制到从的数据库内。

如果数据量太大,可以把从主数据库备份出需要同步的数据(从数据库里缺少的数据),下面举例备份单表中 部分数据

主数据库:

1、mysqldump -uroot -p密码 --single-transaction -t 数据库名  表明 --where="id>100"> /var/www/data_back/system_db_cms_item_news_1214.sql

--where="id>100" 中 id >100 是  sql中的条件,可以自定义 如 name="李四"

/var/www/data_back/beifen.sql  备份文件的路径,自定义即可

 

从数据库:

1、把beifen.sql  重传只 从数据库所在的服务器上,我上传到了  /var/www/data_source/beifen.sql

在服务器上登录 mysql

use db1;选择自己的数据库

执行 source  /var/www/data_source/beifen.sql 

导入数据库中。 数据同步完成。

二、

重置 主数据库的日志,重置从数据库日志,并重新建立同步

1、停止所有从数据库的同步服务

  stop slave;

2、主数据库 重置日志

    reset master;

    并查看状态 show master status; 显示如下

  +-------------+----------+--------------+------------------+
| File               | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------     +----------+--------------+------------------+
| data.000001 |     106  | system_db1    |                  |
+-------------+----------+--------------+------------------+

3、从数据库 重置日志

      RESET SLAVE;

4、在从数据库上 设置 读取  主数据库日志的位置

change master to master_host=‘129.90.1.1,master_user=‘root‘,master_password=‘123456‘, master_log_file=‘data.000001‘,master_log_pos=106;

这里参考主数据库的状态值,如第2步的。

start slave; 开启同步服务器

查看从数据库状态中的值是否一致,
show slave status\G

如下

 Slave_IO_State: Waiting for master to send event
                  Master_Host: 129.90.1.1
                  Master_User: root
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: data.000001
          Read_Master_Log_Pos: 106
               Relay_Log_File: mysql-relay-bin.000002
                Relay_Log_Pos: 246
        Relay_Master_Log_File: data.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: system_db
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 106
              Relay_Log_Space: 401
              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: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:

查看红色字体部分

剩下的就自己测试下主从是否数据同步了

 

以上是关于mysql 主从不同步问题的主要内容,如果未能解决你的问题,请参考以下文章

解决MySql主从同步不一致问题

MySQL中主从复制不同步?

AWS RDS MySQL 主从同步延迟总结

Mysql主从(主从不同步解决办法,常见问题及解决办法,在线对mysql做主从复制)

mysql 5.7 主从同步问题

mysql5.6 主从不同步 存储过程大事务导致