简单五步教你搭建MySQL主从复制

环境

主机:172.17.0.2
从机:172.17.0.3
环境:CentOS7
MySQL:5.6.38
目标:实现主机172.17.0.2到从机172.17.0.3基于Binlog的主从复制

目前MySQL提供两种方式主从复制:

  • 基于Binlog(我们此篇就是基于Binlog的主从复制)
  • 基于GTID

第1步.下载MySQL并分别安装到主机和从机,网上有很多例子。这里就不复赘言。

第2步.在主机和从机上分别拷贝MySQL配置文件到/etc下。如果是安装的MySQL,在/usr/share/mysql下面可以找到my-default.cnf。命令如下:
# cp /usr/share/mysql/my-default.cnf /etc/my.cnf

第3步.修改主机配置文件
# vim /etc/my.cnf
最关键的地方在my.cnf中,需要在[mysqld]配置块中设置服务器唯一编号,并开启Binlog。服务器唯一编号可以根据自己的情况随意,但是尽量遵循容易记有意义的原则(可以使用ip最后一组来做唯一编号)

[mysqld]
server-id = 1 #此id为集群中全局唯一编号,不要和集群中其他机器冲突
log-bin = mysql-bin #这里就是开启主机Binlog日志的关键配置项

保存修改后,需要重新启动mysql
# systemctl restart mysql

第4步.在主机上进入mysql终端进行用户设置
# mysql -uroot -p

在mysql终端中输入

  // 创建一个用于复制权限的用户
  mysql > create user 'repl'@'172.17.0.%' identified by 'abcd_123';
  // 分配复制权限
  mysql > grant repliaction slave on *.* to 'repl'@'172.17.0.%' identified by 'abcd_123';
  mysql > flush privileges;

  // 查看目前主机mysql的日binlog日志状态
  mysql > show master status;

《简单五步教你搭建MySQL主从复制》

第5步.设置从机配置文件。同样是修改mysqld配置块,只不过只增加服务器唯一编号,不用增加Binlog配置
# vim /etc/my.cnf

[mysqld]
server-id = 2 #此id为集群中全局唯一编号,不要和集群中其他机器冲突

// 进入从机mysql命令终端
# mysql -uroot -p

  // 停止同步线程
  mysql > stop slave;

  // 进行主从同步
  // 这里的master_log_file就是主机使用show master status中显示的File列里的值
  // 这里的master_log_pos就是主机使用show master status中显示的Position列里的值
  mysql > change master to master_host='172.17.0.2',
       -> master_user='repl',
       -> master_password='abcd_123',
       -> master_log_file='mysql-bin.000048',
       -> master_log_pos='432';

  // 开启同步线程
  mysql > start slave;

至此,mysql主从复制就已经完成,本人亲测无数次绝对可行。可以创建库或者表查看同步情况。

    原文作者:xiaoniu
    原文地址: https://segmentfault.com/a/1190000013018124
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞