文章目录
  1. redis主从配置
  2. mysql主从配置:

基于Dokcer得Reids/Mysql主从配置

redis主从配置

1.启动主容器
容器启动参数添加:

1
redis-server --slaveof 192.168.10.16 6379 --masterauth 7u8i9o0p --appendonly yes

启动从容器
容器启动参数添加:

1
redis-server /usr/local/etc/redis/redis.conf --appendonly yes

mysql主从配置:

1.主节点配置文件调整

1
2
3
4
5
6
7
8
9
10
11
12
13
[mysqld]
# 主从配置
#启用 GTID 模式
gtid_mode = ON
enforce_gtid_consistency = ON

# 指定要进行主从同步的库
binlog-do-db=xmc
binlog-do-db=xmc_test
binlog-do-db=eva
# 开启binlog
log-bin=mysql-bin
server-id=1

2.创建复制用用户

1
2
3
4
5
6
7
8
9
CREATE USER 'replica_user'@'%' IDENTIFIED BY 'RP7u8i9o0p-[';
GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%';
FLUSH PRIVILEGES;

-- 记住file和position
SHOW REPLICA STATUS;


SHOW BINARY LOG STATUS;

3.从节点配置文件调整

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[mysqld]
# 启用 GTID 模式
gtid_mode = ON
enforce_gtid_consistency = ON
relay_log_recovery = ON
# 启用二进制日志
log_bin = mysql-bin # 启用二进制日志
relay_log = relay-bin
read_only = ON # 设置为只读,防止意外修改数据
# 启用自动跳过从节点不一致事务
replica_skip_errors = all


# 启用从节点重启时自动启动复制
skip_replica_start = 0

# 主从配置
replicate-do-db=xmc
replicate-do-db=xmc test
replicate-do-db=eva

4.从节点配置

1
2
3
4
5
6
7
8
9
10
11
12
13
STOP REPLICA;  

CHANGE REPLICATION SOURCE TO
SOURCE_HOST='192.168.10.16',
SOURCE_PORT=12306,
SOURCE_USER='replica_user',
SOURCE_PASSWORD='RP7u8i9o0p-[',
SOURCE_LOG_FILE='mysql-bin.000021',
SOURCE_LOG_POS=198;

START REPLICA;

SHOW REPLICA STATUS;

5.错误处理

1
2
3
-- 清空从库的二进制日志,并重置复制相关信息  
RESET REPLICA ALL;
RESET BINARY LOGS AND GTIDS;

注意

1.先保证两边结构一致性,也可以用mysqldump

1
2
3
4
5
6
7
8
9
10
11
12
13
pt-table-sync --execute --sync-to-master \
--user=<master_user> --password=<master_password> \
h=192.168.10.16,P=12306,D=%,t=% \
--user=<slave_user> --password=<slave_password> \
h=192.168.10.18,P=12306

# 原始导入导出

#导出 带GTID信息
mysqldump -u root -p --databases xmc xmc_test eva --triggers --routines --events --set-gtid-purged=ON > bk.sql

#导入
mysql -u root -p <bk.sql

2.my.cnf如果启动是被ignore了,只需要把这个文件权限改为644即可

支持一下
您得支持,是我前进的动力.