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;

问题又出现了,

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

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

原文地址:https://www.cnblogs.com/yszr/p/10581988.html