zbb20180619 mysql Mysql主从主备复制完美配置(注:此配置只能从主备份到副)
Mysql主从主备复制完美配置(注:此配置只能从主备份到副)
注意关闭主防火墙要不副连接不上
Mysql版本5.7
操作系统版本centos7.3
事先准备两台机器(或者虚拟机),分别安装好mysql—请确保都是全新安装,并且没有做过任何修改配置和建库建表等操作。
最终实现主从复制(由Master写入,自动同步到Slave中)效果如下:
A:192.168.1.1 主Mysql—Master
B:192.168.1.2 从Mysql—Slave
实施:
1,修改配置文件
假定两台Mysql的配置文件路径都是 /etc/my.cnf
修改主Mysql(Master):
vi /etc/my.cnf
log-bin=mysql-bin //启用二进制日志
server-id=1 //服务器唯一ID,默认是1,为方便辨认取IP最后一段
修改从Mysql(Slave):
vi /etc/my.cnf
log-bin=mysql-bin
server-id=2
2,重启两个mysql,使配置生效
3,在主Mysql上建立mysync帐户并授权为Slave:
mysql>GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by 'xxxx';
mysync是授权的用户名。
xxxx是密码
%表示来自所有ip的mysync账户的slave连接请求都可以被允许,实际上为了安全我们一般会指定特定的ip,比如本例子里用只允许192.168.1.2访问,用192.168.1.2替换%即可。
4,查询主Mysql状态,binlog当前日志信息确认
mysql>show master status;
记住File和Position的值,后面要用。
主从复制的原理是Master的binlog日志中记录所有mysql信息修改,然后Slave通过分析Master的binlog日志获得要同步的内容,所以这里要查询的信息就是——要从哪个File同步,并且从哪个Position开始同步,明白了吧。
请注意,到这里以后,请不要再对Master做任何配置或者数据的修改,直到Slave配置完成!不然会出现信息同步错误。
5,配置从Mysql
stop slave;
change master to master_host='20.180.1.69',master_port=3306,master_user='mysync',master_password='root',master_log_file='mysql-bin.000001',master_log_pos=106;
master_log_file的内容请参考上面4中的File值
master_log_pos参考上面4中Position值
master_user是Master中配置的mysync账户
master_password是mysync账户的密码
6,启动从Mysql的slave同步
root>start slave;
7,检查从mysql的状态
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
如果两个中有一个不是YES,说明配置失败。
以上是配置过程!