标签 主从 下的文章

centos7+mysql5.6配置数据库主从同步


1.环境:
操作系统 :CentOS 7
数据库版本:MySQL 5.6.39
主机A:192.168.2.68(Master)
主机B:192.168.2.71 (Slave)
2.先关闭两台主机的防火墙:

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

然后可以在两台机子之间进行 ping操作,确保两台机器之间能够相通。
3.Master的配置
打开 /etc/my.cnf ,在该文件下指定Master的配置如下:

log-bin=mysql-bin
server-id=2
binlog-do-db=t1
binlog-ignore-db=mysql

把这几行加在[mysqld]下面
这里的server-id用于标识唯一的数据库,这里设置为2,在设置从库的时候就需要设置为其他值。

binlog-ignore-db:表示同步的时候忽略的数据库 
binlog-do-db:指定需要同步的数据库

4.然后重启mysql:service mysqld restart
进入mysql:mysql -uroot -p
5.赋予从库权限帐号,允许用户在主库上读取日志,赋予192.168.2.71也就是Slave机器有File权限,只赋予Slave机器有File权限还不行,还要给它REPLICATION SLAVE的权限才可以。
在Master数据库命令行中输入:

GRANT FILE ON . TO '用于同步的用户名'@'192.168.1.2' IDENTIFIED BY '用于同步的用户密码';
GRANT REPLICATION SLAVE ON . TO '用于同步的用户名'@'192.168.1.2' IDENTIFIED BY '用于同步的用户密码';
FLUSH PRIVILEGES;

上面命令一条条执行
6.再次重启mysql服务 再次进入mysql
显示主库信息

show master status;

这里的 File 、Position 是在配置Salve的时候要使用到的,Binlog_Do_DB表示要同步的数据库,Binlog_Ignore_DB 表示忽略的数据库,这些都是在配置的时候进行指定的。
Slave的配置
1、从库的配置,首先也是修改配置文件:/etc/my.cnf 如下:

log-bin=mysql-bin
server-id=3
binlog-ignore-db=mysql
replicate-do-db=t1
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60

2.然后重启mysql:service mysqld restart
进入mysql:mysql -uroot -p
mysql> stop slave; #关闭Slave
mysql> change master to master_host='192.168.2.68',master_user='刚刚你创建的用于同步的用户名',master_password='刚刚你创建的用于同步的用户密码',master_log_file='mysql-bin.刚刚查看主库信息的那个file', master_log_pos=刚刚查看主库信息的那个pos;
mysql> start slave; #开启Slave
以上命令一条条执行
3.查看从库信息

show slave status G

如果 Slave_IO_Running: Yes
Slave_SQL_Running: Yes
这两个都为yes 就是成功了

主库my.cnf配置
1.png

从库my.cnf配置
2.png