Ninvfeng Blog

记录web开发中的所见所得

mysql 基于binlog 实现主从复制

mysql 基于binlog 实现主从复制。

原理:在主服务器上开启binlog功能生成二进制日志文件记录数据库的所有修改, 然后从服务器从主服务器上获取日志文件并执行,实现主服务器的任何修改都能同步到从服务器

操作步骤

  1. 配置主服务器 my.cnf 并重启mysql服务

    [mysqld]
    log-bin=mysql-bin
    server-id=1
  2. 配置从服务器 my.cnf 并重启mysql服务

    [mysqld]
    server-id=2
  3. 在主服务器上新建用于同步的mysql用户

    GRANT REPLICATION SLAVE ON *.* to 'mysync'@'从服务器ip' identified by 'sync'; 
  4. 查看主服务器状态

    show master status;

    01.png

  5. 配置从服务器

    change master to master_host='主服务器IP',master_user='sync',master_password='sync',master_log_file='第四步中的mysql-bin.000005',master_log_pos=第四步中的1956; 
  6. 启用从服务器

    start slave;
  7. 检查从服务器状态, Slave_IO_Runing及Slave_SQL_Runing必须为YES

    show slave status\G

    02.png

大功告成, 测试修改主服务器上的数据, 看从服务器会不会同步

其他

  • 如果使用了复制的虚拟机, mysql服务的uuid可能会一样Slave_IO_Runing=No, 需要把从服务器mysqldata目录下的auto.cnf删掉然后重启mysql服务

文章评论已关闭!