阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL同步失败解决实例

233次阅读
没有评论

共计 3015 个字符,预计需要花费 8 分钟才能阅读完成。

由于开发的疏忽,把一个库导入到从库里,然后当开发发现导错 MySQL 数据库服务器,也没向我们运维人员反映,当时查看了主库是没有数据,然后开发又在主库导了,结果同步出错,如下:

mysql> show slave status\G;
*************************** 1. row ***************************
              Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.0.155
                  Master_User: myslave
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 804
              Relay_Log_File: relay-log-bin.000002
                Relay_Log_Pos: 253
        Relay_Master_Log_File: mysql-bin.000001
            Slave_IO_Running: Yes
            Slave_SQL_Running: No
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
          Replicate_Do_Table: 
      Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                  Last_Errno: 1008
                  Last_Error: Error ‘Can’t drop database ‘data’; database doesn’t exist’ on query. Default database: ‘data’. Query: ‘drop database data’
                Skip_Counter: 0
          Exec_Master_Log_Pos: 562
              Relay_Log_Space: 949
              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: NULL
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
              Last_SQL_Errno: 1008
              Last_SQL_Error: Error ‘Can’t drop database ‘data’; database doesn’t exist’ on query. Default database: ‘data’. Query: ‘drop database data’
  Replicate_Ignore_Server_Ids: 
            Master_Server_Id: 1
1 row in set (0.00 sec)
 
提示:错误信息是无法撤销数据库,数据库不存在。’,1008 错误
从先创建了这个库,然后主又创建了,至此导致数据库同步冲突

解决方法:
stop slave;
set global sql_slave_skip_counter=1;
start slave;

从库状态:
mysql> show slave status\G;
*************************** 1. row ***************************
              Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.0.155
                  Master_User: myslave
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 804
              Relay_Log_File: relay-log-bin.000004
                Relay_Log_Pos: 253
        Relay_Master_Log_File: mysql-bin.000001
            Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_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: 804
              Relay_Log_Space: 553
              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: 
  Replicate_Ignore_Server_Ids: 
            Master_Server_Id: 1
1 row in set (0.00 sec)

已经 ok 了
1)对于普通的互联网业务,忽略问题不是很大。当然,要确认不影响公司业务的前提下。
2)企业场景解决主从同步,比主从不一致对前面更重要,然后如果主从数据一致也很重要,在找个时间恢复下这个从库。
主从数据不一致更重要还是保持主从同步持续状态更重要。这样我们要我们根据业务选择。

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-06/144495.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计3015字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中