CentOS-MySQL主从复制配置

注:mysql版本一致

配置master(192.168.1.100)

 

编辑docker容器中的mysql服务挂载在宿主机上的my.cnf文件,位置为/usr/mysql/conf/my.cnf(如果没有在宿主机上挂载配置文件,可以进入容器内部修改该配置文件);

vim打开my.cnf文件中找到[mysqld],添加以下配置:

## 同一局域网内要注意唯一(一般设置为ip地址最后一位)
server-id=100
## 开启二进制日志功能,名字可以随便取
log-bin=mysql-bin

保存配置文件,使用docker restart 容器名称[ID] 命令重新启动容器

创建数据库同步用户,并且进行授权:

mysql > CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO 'slave'@'%';

配置slave(192.168.1.101)

与master一样,vim打开my.cnf文件

在my.cnf文件中找到[mysqld],在其下面添加如下内容:

server-id = 102
log-bin=mysql-slave-bin
## relay_log配置中继日志,日志名字可以随便取
relay_log=edu-mysql-relay-bin

重新启动docker容器

配置主从

连接master

在master执行如下sql语句:

mysql > show master status; 
出现如下所示的结果: 
CentOS-MySQL主从复制配置
记录File字段和Position字段的值,后面使用;

连接slave

在slave中执行如下所示的sql语句:
mysql > change master to master_host='192.168.1.100', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos=2830, master_connect_retry=30; 
参数解释: a)master_host: mater所在容器的ip地址(如果两个容器分别在两台宿主机上,也可以是宿主机的ip) 
b) master_user: master上的用于数据同步的用户 
c) master_password: 数据同步用户的密码 
d) master_port:master的端口号 
e) master_log_file: 指定slave从哪个日志文件开始复制数据,即上文提到的File字段 
f) master_log_pos: 指定slave从日志文件中的哪个位置开始复制,即上文提到的position字段 
g) master_connect_retry: 如果连接失败,重试的时间间隔,单位是秒,默认是60

在slave上执行以下的sql语句:


mysql > start slave;

查看主从状态,在slave上执行以下语句:


mysql > show slave status \G; 
CentOS-MySQL主从复制配置
以上两个参数都显示为yes即表示配置完成,可以在master上操作数据库或者表,在slave上验证是否已经复制操作。

上一篇:redhat6.5部署python爬虫项目——mysql(四)


下一篇:MySQL远程连接Ubuntu16.04