基于Dokcer得Reids/Mysql主从配置
2020.03.08
PKAQ
数据库
 热度
℃
共
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;
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即可