Mysql 5.7一主一从同步配置(一主多从配置类似)(亲测) 有更新!

  aluaa

1、准备工作

准备两台已经安装 Mysql5.7.23数据库的服务器,配置如下:

192.168.200.7(主)
192.168.200.11(次)

并在两台机器上把要同步的数据库创建好,名字务必完全一样,比如数据库名字 database-A

2、配置主、从数据库配置文件,使之支持主从同步

2.1、主服务器配置,在mysql配置文件/etc/my.cnf的[mysqld]下添加如下配置项:

#主从配置
#server_id是服务器唯一标识
server_id = 111
log_bin = mysql_bin
#不需要备份的数据库
binlog_ignore_db = mysql
#需要备份的数据库
binlog_do_db = database-A
#存储二进制日志的缓存大小
binlog_cache_size = 1M
#主从复制的格式(mixed, statement, row 默认statement)
binlog_format = mixed
#二进制日志自动删除/过期的天数,默认为0表示不删除
expire_logs_days = 0

2.2、从服务器配置,在mysql配置文件/etc/my.cnf的[mysqld]下添加如下配置项:

#主从配置
#server-id是服务器唯一标识
server_id = 112
log_bin = mysql_bin
#不需要备份的数据库
replicate_ignore_db = mysql
#需要备份的数据库(这里数据库名字和主库配置保持一样)
replicate_do_db = database-A

3、创建授权用户

使用mysql的root账号创建一个专门进行数据同步的mysql账号slave,并设置密码为 ‘admin’

mysql -u root -p
grant replication slave on *.* to 'slave'@'%' identified by 'admin';

4、同步开始

4.1、主库操作:

mysql> show  variables  like  'log_bin';#查看log_bin是否开启

imagepng

log_bin的状态是ON表示已开启

mysql> `show master status ;` #查看master状态

imagepng

Binlog_Do_DB是需要同步的数据库,这里忽视sunmi-merchant,应该正确展示上面的database-A

4.2、从库操作:

mysql> `reset slave;`  #清除此前可能存在的同步
mysql> `stop slave;` #停止同步,默认同步是开启的
mysql> `change master to master_host='192.168.200.7',master_user='slave',master_password='admin',master_log_file='mysql_bin.000002',master_log_pos=3752;`

注:
master_host表示主库的IP
master_user表示主库master上同步的用户slave
master_password表示同步slave的密码
master_log_file表示从哪个binlog文件开始同步
master_log_pos表示从该binlog文件的哪个pos节点位置开始同步
其中master_log_file和master_log_pos就是主库设置中记录的binlog文件名和pos位置节点

查看同步状态:
imagepng

如果Slave_IO_Running:Yes 和Slave_SQL_Running: Yes 都为Yes,说明配置成功

运行以下命令开始复制;

mysql> `start slave;` 

执行没有错误,再执行

mysql> `show slave status\G;`

一主多从和一主一从配置类似,只需要新增一个从服务器192.168.200.12的配置,主服务器的配置不用做任何修改。