• MySQL主从同步机制及同步中的问题处理


    原文:https://www.cnblogs.com/doseoer/p/4007714.html

    一、主从服务器分别作以下操作
    1.1、版本一致
    1.2、初始化表,并在后台启动mysql
    1.3、修改root的密码

    二、环境

    Master:

    master操作系统

    Centos 6.3

    IP

    192.168.3.100

    MySQL版本

    5.6.13-log

    slave:

    slave操作系统

    Centos 6.3

    slave操作系统

    IP:192.168.3.2

    MySQL版本

    5.6.13-log

    三、修改主服务器master:
    #vi /etc/my.cnf
    [mysqld]
    log-bin=mysql-bin //[必须]启用二进制日志
    server-id=100 //[必须]服务器唯一ID,默认是1,一般取IP最后一段

    四、修改从服务器slave:
    #vi /etc/my.cnf
    [mysqld]
    log-bin=mysql-bin //[必须]启用二进制日志
    server-id=2 //[必须]服务器唯一ID,默认是1,一般取IP最后一段

    五、重启两台服务器的mysql
    /etc/init.d/mysql restart

    六、在主服务器上建立帐户并授权slave:
    一般不用root帐号,“%”表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.3.216,加强安全。在这里使用localhost。

    七、登录主服务器的mysql,查询master的状态
    注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化

    八、配置从服务器slave:

    配置的时候可以先关掉slave服务器复制功能。

    Mysql>startslave;

    然后在启动

    Mysql>startslave; //启动从服务器复制功能

    九、检查从服务器复制功能状态:

    mysql> show slave statusG

    如果Slave_IO_Running、Slave_SQL_Running状态为Yes则表明设置成功。

    十、主从服务器测试:
    主服务器Mysql,建立数据库,并在这个库中建表插入一条数据:

    在主服务器上面新建一个表,

    在从服务器查看是否同步过来????

    说明已经配置成功。

    小节:

           这次配主从数据库,费了我两天的功夫看了一下这方面的知识。

           看网上的资料都是一个版本的,

           问题一:CentOS下安装官方RPM包的MySQL后找不到my.cnf

           我一直在想个问题,为什么没有这个文件而MySQL却也能正常启动和使用,这个有两个说法:

    1、  my.cnf只是MySQL启动时的一个参数而已,可以没有它,这时MySQL会有内置的默认参数启动。

    2、  MySQL在启动时自动使用/usr/share/mysql/my-default.cnf文件,这种说法仅限于rpm包安装的MySQL

    cp /usr/share/mysql/my-default.cnf/etc/my.cnf

    问题二:配置从服务器Slave_IO_Running=NO

    解决方法:

    Mysql > stopslave;

    Mysql > setglobal sql_slave_skip_counter =1 ;

    Mysql > startslave;

    问题三:Slave_IO_Running=NO的问题。

           这个问题是我研究最长的一个问题,找资料看文档就是不知道出现什么错误。但是在后来配成功之后,才知道问题出现在什么地方。有人说是出现这类错误有三个原因。第一个原因是网络问题,第二个是my.cnf配置问题,但是我感觉第二个的原因太笼统了,我没遇到过类似问题,第三个问题是权限问题,我的问题出现在第三步,始终找不到错误原因。最后看到一篇博文说这个错误就是IO进程没连接上,想办法连接上,把与主的pos和文件一定要对,然后重新加载下数据。

    具体步骤:

    slave stop;
    无奈想到在从服务器中用到

    注:master_log_file=' mysql-bin.000005',MASTER_LOG_POS=328;是从主的上面查出来的:showmaster statusG;

    slave start;

    问题又出现了,

    彻底要疯了。。。。。这是为啥呢???

    百思不得其解时,重启从服务器竟然链接成功了。。

  • 相关阅读:
    一元运算符重载 前置和后置++ --(这种一般用成员函数来实现重载)
    运算符中的二元重载,为什么要调用友元函数而不是全局函数的问题
    关于数组的封装不知道为什么错了,具体代码如下
    关于对象的动态建立和释放
    关于构造函数中调用构造函数的危险
    关于析构函数,构造函数匿名对象的总结,以厚忘了,可以回来观看很全
    关于深拷贝和浅拷贝的疑问
    构造函数的调用大全
    构造函数的调用(其中不包括赋值构造函数)
    LeetCode:Add Digits
  • 原文地址:https://www.cnblogs.com/yszr/p/10581988.html
Copyright © 2020-2023  润新知