• MySql主从同步问题解决


    先查看从服务器的状态

    1 mysql>SHOW SLAVE STATUS;

    如果发现以下两个字段

    1 Slave_IO_Running: No
    2 Slave_SQL_Running: NO

    其中有一个为No,则同步出错,需要恢复。出错信息可以参考Last_Error字段。

    一般情况下,在从服务器上执行

    1 mysql>stop slave;
    2 mysql>start slave;

    即可恢复。

    如果运行这个之后,依然不能恢复,则可尝试以下方法。

    先锁定表,在主服务器上执行

    1 mysql>FLUSH TABLES WITH READ LOCK;
    2 mysql>SHOW MASTER STATUS;

    第一句锁定表,第二句显示主服务器的状态,记下

    1 File:
    2 Position:

    这两个字段的值,再把需要同步的数据库的目录,在主服务器上操作,复制到从服务器

    1 scp -r db_1 db_2 root@192.168.1.200:/var/lib/mysql/

    这里,把db_1,db_2两个数据库目录,复制到从服务器的MySql数据目录下,复制后,注意权限问题。

    完成复制之后,在主服务器上操作,解锁表

    1 UNLOCK TABLES;

    在从服务器上操作

    1 STOP SLAVE;
    2 
    3 CHANGE MASTER TO
    4 MASTER_LOG_FILE='mysql-bin.000098',
    5 MASTER_LOG_POS=22926865;
    6 
    7 START SLAVE;
    8 
    9 SHOW SLAVE STATUS;

    这里,LOG_FILE与LOG_POS分别对应之前在主服务器上查询出来的File与Position字段。

    完成。

    其中的CHANGE MASTER TO语句,通常还有以下值,按需选择设置

    1 CHANGE MASTER TO
    2 MASTER_HOST='192.168.1.199', 
    3 MASTER_USER='repl', 
    4 MASTER_PASSWORD='repl', 
    5 MASTER_PORT=3306 
    6 MASTER_LOG_FILE='MYSQL-BIN.000098', 
    7 MASTER_LOG_POS=22926865, 
    8 MASTER_CONNECT_RETRY=30; 
  • 相关阅读:
    使用Putty和Xshell远程登录之密钥认证
    保护SSH的三把锁
    C++11_shared_ptr
    C++11_ tuple
    C++11_ 右值引用
    C++11_ Variadic Templates
    C++11_ Lambda
    C++11_新语法
    MoreEffectiveC++Item35 条款27: 要求或禁止对象产生于heap中
    MoreEffectiveC++Item35 条款26: 限制某个class所能产生的对象个数
  • 原文地址:https://www.cnblogs.com/heiing/p/2688504.html
Copyright © 2020-2023  润新知