配置主从服务器一般是在2台电脑上,首先装上mysql没啥说的,主服务器能ping通从服务器,不能的话从服务器去设置关闭防火墙或者端口例外。
1.主从服务器分别做以下操作:
主服务器mysql版本大于从服务器版本(最好一致)
初始化库,启动mysql服务
修改root密码(已改过的可以忽略)
2.修改主服务器master:
#vi /etc/my.cnf 或者mysql目录下的my.ini
[mysqld]
log-bin=mysql-bin //[必须]启用二进制日志
server-id=183 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
3.修改从服务器slave:
#vi /etc/my.cnf 或者mysql目录下的my.ini
[mysqld]
log-bin=mysql-bin //[不是必须]启用二进制日志
server-id=173 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
重启mysql主从服务
4.在主服务器上建立帐户并授权slave:
mysql -u root -p 其中root是账户,登录成功之后授权,或者在mysql客户端(Navicat)登录之后授权
mysql>GRANT REPLICATION SLAVE ON *.* to '你的账号名'@'%' identified by '你的账号密码'; //一般不用root帐号,
mysql>GRANT all ON *.* to '你的账号名'@'%' identified by '你的账号密码'; //授权所有权限,Slave_IO_Running: NO 这里没有相应的删改查权限也会影响
%表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.100.173,加强安全。
今天在堡垒机上连接2个主从服务器设置主从,授权搞了1个小时一直不成功,找原因(哭脸),最后发现没有远程全选,登录到主服务器去授权。
5.登录主服务器的mysql,查询master的状态
mysql>show master status;
找到File和Position的值,并记录下来,file表示从主服务器那个文件读给从服务器,Position表示从哪个节点开始
注:执行完此步骤后不要再操作主服务器MYSQL,如果多人会操作主服务器的数据库,要先锁库,单人可以忽略。防止主服务器File和Position状态值变化
6.配置从服务器Slave:
mysql>change master to master_host='192.168.100.183',master_user='授权salve的账户名',master_password='授权salve的账户密码',
master_log_file='master状态的file值',master_log_pos=Position的值; //注意不要断开,数字前后无单引号。
Mysql>start slave; //启动从服务器复制功能
7.检查从服务器复制功能状态:
mysql> show slave status;
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
注:结果集中有以上2项并且值为yes,否则都是错误的状态(如:其中一个NO均属错误)。
如果中途此2项值有为no的情况,检查之前步骤,修改到6步骤之前,执行reset slave all;意思是清除从库的同步复制信息、包括连接信息和二进制文件名、位置。
以上操作过程,主从服务器配置完成。
8.主从服务器测试:
主服务器Mysql,建立数据库,并在这个库中建表分别插入、修改、删除一条数据操作,并同时查看从服务器上是否有相应数据改动
总结:第一次配置如果中途没有错误,可以一次成功。重新配置很容易因为主服务器授权生成的配置文件和从服务器生成的中继文件造成标记值不一致导致的Slave_IO_Running: No