一、主从服务器分别作以下操作:
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;
问题又出现了,
彻底要疯了。。。。。这是为啥呢???
百思不得其解时,重启从服务器竟然链接成功了。。