zoukankan      html  css  js  c++  java
  • MySQL主从同步机制及同步中的问题处理

    一、主从服务器分别作以下操作
    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操作系统

    IP192.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_RunningSlave_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;

    问题又出现了,


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

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


  • 相关阅读:
    T-sql 中 truncate 、delete与drop操作数据库的区别
    poj -3070 Fibonacci (矩阵快速幂)
    给定一个0-1串,请找到一个尽可能长的子串,其中包含的0与1的个数相等。
    最长的循环节
    大组合数取模
    n个点中求任意两点组成斜率的最大值
    csu
    csu
    poj
    hdu
  • 原文地址:https://www.cnblogs.com/doseoer/p/4007714.html
Copyright © 2011-2022 走看看