您的位置:首页 > 运维架构 > Linux

CentOS下MySQL主从同步配置

2013-10-01 16:55 363 查看
一、主从服务器分别作以下操作

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 status\G



如果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 status\G;

slave start;

问题又出现了,



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

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



恩。想想这两天的劳动成果。累点算什么….
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息