mysql 主从同步
属于异步复制
主服务器(master)上开启io线程,从服务器(slave)上开启io线程和sql线程
主服务器(master)配置步骤:
1、主服务器master开启bin-log
编辑 /etc/my.cnf,修改下面如果有注释取消
log-bin=mysql-bin
server id=1
2、主服务器master:进入mysql
mysql -uroot -p
授权给从服务器:grant replication slave on *.* to 'root'@'%' identified by '123'; (1、所有数据库、表权限,2、账号,3、所有主机地址,4、密码)
3、查看bin-log文件:
show master status; 记住position 记录点和file 文件,后面要在从服务器上面配置
从服务器(slave)配置步骤:
1、编辑/etc/my.cnf 修改server id=2(这个值自定义,和主服务器server id不同即可)
2、从服务器slave:进入mysql
mysql -uroot -p
设置从服务器连接到主服务器:change master to master_host='192.168.137.128',master_user='root',master_password='123',master_log_file='mysql-bin.000010',master_log_pos=453;(1、主服务器ip地址,2、主服务器设置账号,3、密码,4、5、上面配置主服务器第三步查询结果,file和position)
开启从服务:start slave;
3、检查是否开启:show slave status\G,下面io和sql线程是yes说明从服务正常
主从:主服务器改变,从服务器会同时进行改变,但同步前的数据主从是各自独立的。(相当于主服务器执行一条操作,从服务上也执行同一条操作)
互为主从:将上面主从服务器反向配置一遍,可实现两台服务器同时执行任意一台服务器上操作。