• Linux下MySQL主从同步故障:"Slave_SQL_Running:No"的解决方法


    故障现象:


    进入slave服务器,运行:
    mysql> show slave statusG

             .......
                 Relay_Log_File: localhost-relay-bin.000001
                 Relay_Log_Pos: 151
               Relay_Master_Log_File: localhost-bin.000002
                 Slave_IO_Running: Yes
                 Slave_SQL_Running: No
                 Replicate_Do_DB: 
                 Replicate_Ignore_DB: 
             ......


    解决办法一、

    Slave_SQL_Running: No
    1.程序可能在slave上进行了写操作

    2.也可能是slave机器重起后,事务回滚造成的.

    一般是事务回滚造成的:
    解决办法一:
    mysql> stop slave ;
    mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;    #客户端运行,用来跳过几个事件,只有当同步进程出现错误而停止的时候才可以执行。
    mysql> start slave ;

    解决办法二:
    首先停掉Slave服务:stop slave ;
    到主服务器上查看主机状态:
    记录File和Position对应的值

    进入master
    mysql> show master status;
    +----------------------+----------+--------------+------------------+
    | File                 | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +----------------------+----------+--------------+------------------+
    | localhost-bin.000001 | 151 |              |                  | 
    +----------------------+----------+--------------+------------------+
    1 row in set (0.00 sec)


    然后到slave服务器上执行手动同步:
    mysql> change master to 
    > master_host='master_ip',
    > master_user='user', 
    > master_password='password', 
    > master_port=3306, 
    > master_log_file='localhost-bin.000001', 

    > master_log_pos=151,master_auto_position=0;


    1 row in set (0.00 sec)
    mysql> start slave ;
    1 row in set (0.00 sec)


    此时再查看从机:

    mysql> show slave status G
    *************************** 1. row ***************************
                   Slave_IO_State: Waiting for master to send event
                      Master_Host: 192.168.1.103
                      Master_User: cfwxa
                      Master_Port: 3306
                    Connect_Retry: 60
                  Master_Log_File: master-bin.000001
              Read_Master_Log_Pos: 151
                   Relay_Log_File: localhost-relay-bin.000002
                    Relay_Log_Pos: 363
            Relay_Master_Log_File: master-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: 151
                  Relay_Log_Space: 571
                  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的写操作! 


  • 相关阅读:
    Docker GitLab镜像部署
    Kubernetes集群部署之三ETCD集群部署
    Kubernetes集群部署之二CA证书制作
    Kubernetes集群部署之一系统环境初始化
    docker开源仓库Harbor部署笔记
    git分支
    git高清技能图
    vue+uwsgi+nginx部署路飞学城
    git基础
    git安装与初始化
  • 原文地址:https://www.cnblogs.com/jasontec/p/9601635.html
Copyright © 2020-2023  润新知