首先来介绍一下mysql主从复制的一些优点
1、当主服务器出现问题时,可以快速的切换到从服务器上,可以继续提供服务;
2、可以实现读写分离,减轻服务器压力
3、可以在从服务器上备份,减少备份时服务器的对外服务
对于一些实时性要求不高的数据,可以在从服务器上查询,而一些实时性要求高的数据,还是要在主服务器上获取
mysql主从复制,首先要主服务器授权一个用户,让它可以在从服务器上登录;
mysql> grant all on *.* to user1 @192.168.10.2 identified by "111111";
Query OK, 0 rows affected (0.00 sec)
这里说明下:主服务器的ip是192.168.10.1,从服务器的ip是192.168.10.2
首先修改主服务器上mysql的配置文件/etc/my.cnf文件,打开bin-log配置
log-bin=mysql-bin
server-id=1
这里我们要设置server-id并且要确保和从服务器的server-id不一样;
修改完毕需要重启mysqld服务
然后把主服务器上的数据备份一份下来,放置到从服务器上去,使用mysqldump
mysql>mysqldump -uroot -proot test -F -l >/tmp/test.sql
使用这条命令来备份数据,-F 刷新日志 -l读锁,放置备份时有数据更新,然后把备份的数据放到从服务器(192.168.10.2)上去
下面开始配置mysql从服务器
首先恢复在主服务器上的数据,
mysql>source /tmp/test.sql
回复完毕,然后同样的,先修改/etc/my.cnf文件
这里的master-host是主服务器的主机名,master-user则是我们添加的user1用户,其他密码,端口的就不多说了
配置完毕,重启mysqld服务
然后登陆mysql,使用show slave status来查看从服务器的配置
当我们看到图中那两行显示为yes时就说明从服务器配置成功
从上述结果中我们也可以看到我们登陆主服务器的用户名,主机,和主服务器最新的bin-log文件信息
下面试验一下,
先查看主服务器上的数据
我们看到主服务器上有一个t1表,表里面有6行数据;
在看一下从服务器上
两者数据是一样的,下面我们往主服务器上插入一些数据
现在主服务器上的数据是这样的
现在到从服务器上查看一下
我们发现,从服务器上的数据和主服务器上的数据完全一致,主从复制配置成功