MySQL · 2014/05/26 0

MySQL主从复制部署

上周末利用现有的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.配置如下:

  1. 主配置如下:
  2. vi /etc/my.cnf
  3. #修改
  4. serverid = 1
  5. logbin=/tmp/mysqlbin.log
  6. binlogdodb=db_cms #只记录db_cms日志,也就是说只同步该db
  7. binlogdbdb=db_cms_01#如果同步多个可以写多个
  8. binlogignoredb=mysql #忽略哪个db,一般忽略mysql这个库
  9. #保存退出
  10. #重启mysql服务
  11. #连接数据库
  12. #mysql -u root -p
  13. #添加一个用于slave 同步数据的用户
  14. CREATE USER ‘slave_001’@ ‘%’ IDENTIFIED BY ‘slave_001_pass’;
  15. GRANT REPLICATION SLAVE ON *.* TO ‘slave_001’@‘%’ IDENTIFIED BY ‘slave_001_pass’;
  16. /etc/init.d/mysql restart

 

  1. #从配置如下:
  2. 由于mysql5.5版本不可以直接去修改配置文件去配置。
  3. #mysql -u root -p
  4. #执行如下命令,指定主库的ip,用户,密码.其他参数请见配置文件
  5. change master to master_host=‘122.xxx.xx.xxx’,master_user=‘slave_001’,master_password=‘slave_001_pass’
  6. 同样去配置文件去修改:
  7. server_id = 2 #这个id是增长的,可以不连续,但不能相同
  8. #可以配置同步指定的库
  9. replicatedodb=db_cms #同步多个数据库,可以写多条
  10. replicateignoredb=mysql#为了安全起见可以在从库上也限制同步该数据库
  11. #重启mysql服务
  12. /etc/init.d/mysql restart
  13. start slave; #启动slave进程。
  14. #这时候可以使用
  15. show slave status\G;查看状态

总结:
配置基本完毕,但是有一些细节要注意,比如您是否开启了iptables,您设置的端口是否被允许出入,MySQL是否允许远程连接,等等。MySQL5.5以上版本主从配置一定要使用change master to 语句去设置主库的信息.
测试配置成功的方法:可以在主库里指定同步的数据库进行增删改,看从库是否发生变化

=======================陈捷华丽的补充线====================

在增加从库的时候为了保持数据一致性,需要先备份主库恢复到从库,此时需要停机操作。