ContOS下搭建MySQL主从复制

本文介绍在CentOS操作系统上搭建MySQL主从复制的过程。先准备两台安装MySQL的CentOS系统,明确主从服务器,接着分别对主从服务器进行配置,检查从服务器复制功能状态。测试发现主从复制可自动同步,但从服务器增删改会影响主从运行,建议创建只读用户。
  1. 准备工作

    • CentOS操作系统 192.168.18.179

    • CentOS操作系统 192.168.18.180

      两台操作系统中都安装了MySQL数据库,安装MySQL的过程可参考 CentOS下安装MySQL5.7(图文)

  2. MySQL的主从复制依靠的是二进制日志,其实现过程为:主服务器会将增删改的操作记录到日志文件里面,从服务器拿到主服务器的日志文件以后,再执行一遍就实现了主从服务器的同步。

  3. 在本次的演示中192.168.18.179作为主服务器,192.168.18.180作为从服务器。

  4. 在主服务器的配置文件中增加如下的配置

    [mysqld]
    log-bin=mysql-bin       //[必须]启用二进制日志
    binlog_format=mixed   //二进制日志的格式,有三种:statement/row/mixed,具体分别不多做解释,这里使用mixed
    server-id=179           //[必须]服务器唯一ID,默认是1,一般取IP最后一段
    
  5. 重启主服务器

    service mysqld restart;
    
  6. 登录到主服务器

    mysql -uroot -p
    

    然后输入密码

  7. 为从服务器分配一个账号,通过这个账号从服务器就可以拿到主服务器的日志文件

    GRANT replication slave ON *.* TO 'slave'@'%' identified by 'slave';
    
  8. 查询主服务器配置状态

    show master status;
    
  9. 配置从服务器,修改配置文件/etc/my.cnf

    log-bin=mysql-bin  #[不是必须]启用二进制日志
    binlog_do_db=test  //同步的数据库
    server-id=180
    
  10. 重启从服务器

    service mysqld restart;
    
  11. 登录到从服务器

    mysql -uroot -proot
    
  12. 关闭slave同步(一定要先关闭)

    stop slave;
    
  13. 开始配置,执行下面的命令

    change master to 
    master_host='192.168.18.179',  --主服务器
    master_user='slave',           --登录到主服务器的用户名
    master_password='slave',       --登录到主服务器的密码
    master_log_file='mysql-bin.000001',  --主服务器的日志文件
    master_log_pos=438;  --主服务器的bin日志的记录位置,最后一项不需要加引号。否则配置失败
    
  14. 启动slave同步

    start slave;
    
  15. 检查从服务器复制功能状态

    show slave status;
    

    如果图中的两项都为yes,则表示主从配置已经生效了

  16. 最好在从服务器创建一个只读账号,防止主从复制失效

    GRANT Select ON *.* TO reader@"%"  IDENTIFIED BY "reader";
    
  17. 测试主从复制的功能

    1. 在主服务器上面新建一个数据库test

      此时发现从服务器上面也多了一个test的数据库

    2. 在主服务器的test库下面新建一张表t_user

      此时发现从服务器上面也多了一个一模一样的表t_user

    3. 当对主服务器上面的表进行增删改操作时,发下从服务器也能自动同步,此时主从复制的MySQL就成功搭建。

  18. 但是如果对从服务器进行增删改操作的时候,主服务器无法进行同步,再次对主服务器进行增删改的操作时发现已经无法操作,所以为了保证主从的正常运行,最好在从服务器创建一个只读的用户,对从服务器只进行读的操作。

  19. 创建只读用户的sql为:

    GRANT Select ON *.* TO reader@"%"  IDENTIFIED BY "reader"; --创建一个用户名和密码都是reader的只读用户
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值