Mysql 5.6主从同步配置

特别提示:本方法适用于mysql5.6版本,5.6以前的版本配置方法不同,我没有做测试

由于一主多从和一主一从的配置方法一样,所以本文仅测试一主一从,可自主扩展到多从

环境:

server1 master centos7 mysql5.6

server2 slave centos7 mysql5.6

......

serverN slave centos7 mysql5.6

配置:

server1 master角色

由于我是yum安装的mysql,所以

#vim /etc/my.cnf 添加如下行

server-id=1 
log-bin=/var/log/mysql/logbin/mysql-bin
binlog-do-db=radius

server-id:用于标识,和slave角色的server-id区分开就行,没有大小之分

log-bin:指定binlog的目录和文件,注意:这个文件和路径一定要存在,如果你用mysql用户启动的话,也要修改该文件的属主为mysql

binlog-do-db:指定你要同步的数据库,如果你想忽略某些数据库的话,可以使用binlog-ignore-db参数

配置完成后,重启mysql

#service mysqld restart

重启后,登录mysql控制台,新建一个账户,该账户主要是用于从库登录上来同步数据用的

mysql>grant all privileges on *.* to 'user'@'%' identified by 'your_password';

mysql>flush privileges;

查看主库状态

mysql>show master status; //如果出现如下字符说明配置正确

mysql> show master status;
+------------------+----------+--------------+----------------------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB                 | Executed_Gtid_Set |
+------------------+----------+--------------+----------------------------------+-------------------+
| mysql-bin.000004 |    28125 | ufind_db     | information_schema,cluster,mysql |                   |
+------------------+----------+--------------+----------------------------------+-------------------+
1 row in set (0.00 sec)

注意上面显示的File和Position字段,待会从库同步的时候需要用到

server2 slave配置

#vim /etc/my.cnf 添加如下行

server-id=2
binlog-do-db=radius

注意:配置这两行就可以了,其他文章说有要配置binlog的,其实没必要配置,从库只是从主库去拿binlog,然后恢复到从库本地来,所以不用配置binlog

如果你的从库下面级联了第二级的从库的话,就必须要配置binlog了,否则下级的从库无法同步数据

重启数据库

#service mysqld restart

既然要从主库拿binlog,那在哪配置账户密码呢?重点来了

重启完数据库实例后,登录mysql控制台,执行如下语句

mysql>change master to master_host='server1_ip',master_user='root',master_password='your_pass',master_log_file='mysql-bin.000004',master_log_pos=28125;
Query OK, 0 rows affected, 2 warnings (0.03 sec)

 mysql> start slave;
 Query OK, 0 rows affected (0.00 sec)

在上面的sql语句中指定主库的账号密码,其中

master_log_file='mysql-bin.000004',输入上一步中主库里面查出来的File字段

master_log_pos 输入输入上一步中主库里面查出来的Position字段

然后执行start slave命令就可以开始同步了,

这时候主库里面插入一条数据,从库就可以自动同步过来了

参考资料:https://blog.csdn.net/xlgen157387/article/details/51331244/

原文地址:https://www.cnblogs.com/Kevin-1967/p/8633508.html