1.创建好主数据库所需目录后,docker run 运行mysql
docker run -p 3307:3306 --name mysql-master \
-v /data/cluster/mymysql/mydata/mysql-master/log:/var/log/mysql \
-v /data/cluster/mymysql/mydata/mysql-master/data:/var/lib/mysql \
-v /data/cluster/mymysql/mydata/mysql-master/conf/my.cnf:/etc/mysql/my.cnf \
-v /data/cluster/mymysql/mydata/mysql-master/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD='****' \
-d mysql:8.0.35
2.创建数据同步用户
create database X default character set utf8mb4 collate utf8mb4_unicode_ci;
create user 'user'@'%' IDENTIFIED WITH mysql_native_password BY '****';
GRANT REPLICATION SLAVE ON *.* TO 'user'@'%';
3.创建好从数据库所需目录后,docker run 运行mysql
docker run -p 3308:3306 --name mysql-slave \
-v /data/cluster/mymysql/mydata/mysql-slave/log:/var/log/mysql \
-v /data/cluster/mymysql/mydata/mysql-slave/data:/var/lib/mysql \
-v /data/cluster/mymysql/mydata/mysql-slave/conf/my.cnf:/etc/mysql/my.cnf \
-v /data/cluster/mymysql/mydata/mysql-slave/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD='*****' \
-d mysql:8.0.35
4.查主数据库信息
记住file和Position的信息
show master status;
5.在从数据库中配置主从复制,登录从数据库mysql终端,执行以下代码:
change replication source to source_host='服务器ip',
source_port=3307,
source_user='user',
source_password='******',
source_log_file='mysql-bin.000003',
source_log_pos=1725;
start replica;
6.查看从数据库状态是否同步
show replica status \G;
#########################
都为yes,说明配置成功
Replica_IO_Running: Yes
Replica_SQL_Running: Yes
主数据库my.cnf配置
[mysqld]
# 设置server_id,同一局域网唯一
server_id=200
# 指定不同步的数据库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
# 设置需要复制的数据库
binlog-do-db=X
# 开启二进制日志功能
log-bin=mysql-bin
# 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M
# 设置使用的二进制日志格式
binlog-format=mixed
从数据库my.cnf配置
[mysqld]
# 设置server_id,同局域网唯一
server_id=201
# 指定不同步的数据库
binlog-ignore-db=mysql
# 开启二进制功能,以备slave作为其他数据库实例的master时使用
log-bin=oa-mysql-slave01-bin
# 设置使用的二进制日志格式
binlog_format=mixed
# 开启中继日志
relay_log=mysql-relay-bin
# 标识slave将复制事件写进自己的二进制日志
log_slave_updates=1
参考文章

1191

被折叠的 条评论
为什么被折叠?



