内容目录
上周末利用现有的2台美国vps,一台香港vps做了些实验,记录下关键的流程步骤
1.本次实验目的:了解主从复制的原理,以及配置方法,了解主从复制有哪些好处和弊端
2.实验环境:
3台vps(真机哦)
server1 122.xxx.xxx.xxx 3306 (主)
server2 192.125.xxx.xxx 3306 (从)
server3 192.125.xxx.xxx 3306 (从)
MySQL 5.5.27 Centos 5.8 final 32bit
3.配置如下:
- 主配置如下:
- vi /etc/my.cnf
- #修改
- server–id = 1
- log–bin=/tmp/mysql–bin.log
- binlog–do–db=db_cms #只记录db_cms日志,也就是说只同步该db
- binlog–db–db=db_cms_01#如果同步多个可以写多个
- binlog–ignore–db=mysql #忽略哪个db,一般忽略mysql这个库
- #保存退出
- #重启mysql服务
- #连接数据库
- #mysql -u root -p
- #添加一个用于slave 同步数据的用户
- CREATE USER ‘slave_001’@ ‘%’ IDENTIFIED BY ‘slave_001_pass’;
- GRANT REPLICATION SLAVE ON *.* TO ‘slave_001’@‘%’ IDENTIFIED BY ‘slave_001_pass’;
- /etc/init.d/mysql restart
- #从配置如下:
- 由于mysql5.5版本不可以直接去修改配置文件去配置。
- #mysql -u root -p
- #执行如下命令,指定主库的ip,用户,密码.其他参数请见配置文件
- change master to master_host=‘122.xxx.xx.xxx’,master_user=‘slave_001’,master_password=‘slave_001_pass’
- 同样去配置文件去修改:
- server_id = 2 #这个id是增长的,可以不连续,但不能相同
- #可以配置同步指定的库
- replicate–do–db=db_cms #同步多个数据库,可以写多条
- replicate–ignore–db=mysql#为了安全起见可以在从库上也限制同步该数据库
- #重启mysql服务
- /etc/init.d/mysql restart
- start slave; #启动slave进程。
- #这时候可以使用
- show slave status\G;查看状态
总结:
配置基本完毕,但是有一些细节要注意,比如您是否开启了iptables,您设置的端口是否被允许出入,MySQL是否允许远程连接,等等。MySQL5.5以上版本主从配置一定要使用change master to 语句去设置主库的信息.
测试配置成功的方法:可以在主库里指定同步的数据库进行增删改,看从库是否发生变化
=======================陈捷华丽的补充线====================
在增加从库的时候为了保持数据一致性,需要先备份主库恢复到从库,此时需要停机操作。