RDS配置从库
一、 版本要求:
因阿里RDS使用GTID特性,因此要求MySQL版本>=5.6
二、 配置主实例:
- 目标RDS创建只读账号,并授权数据库。
- 如有必要,将从实例的 IP 地址加入主实例的 IP 白名单中。
- 查询主实例的 server-id
mysql> show variables like '%server_id%';
+----------------+------------+
| Variable_name | Value |
+----------------+------------+
| server_id | 2504883070 |
| server_id_bits | 32 |
+----------------+------------+
- 导出主实例数据
[root@server-4-241 scripts]# mysqldump -ucszjy -hcszjy-sql01.mysql.rds.aliyuncs.com -pr48T7HQp9eiNL99n --single-transaction --routines --triggers --master-data=2 --events --flush-logs --databases zjy > zjy.sql
- 记录导出SQL后使用的binlog文件名
mysql> show master status\G
*************************** 1. row ***************************
File: mysql-bin.003223
Position: 36631447
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set: 1fca3bbb-4870-11e8-a6ad-7cd30aeb7e5c:1-104974702,
a7d4ecd6-6edc-11e8-b0e1-7cd30aeb4598:1-140222642
1 row in set (0.03 sec)
三、配置从实例
-
安装mysql
-
修改mysql配置
打开my.cnf,添加以下配置
server-id = 2504883071 # 不能与server端id相同
max_binlog_size = 100M
replicate-do-db = zjy # 需要同步的数据库
replicate-ignore-db = mysql # 不同步的数据库
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
# GTID配置
gtid_mode=on
enforce_gtid_consistency=on
binlog_format=row # 设置binlog为ROW
log-slave-updates=1
character_set_server = utf8
- 启动mysql-slave查看binlog_format
mysql> show variables like '%binlog_format%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | ROW |
+---------------+-------+
- 把导出的SQL文件导入从库
# 创建所需数据库
mysql> create database zjy;
# 导入SQL至zjy库
~]# mysql -uroot -hlocalhost -p zjy < zjy.sql
- 配置从库并启动
# 同步选项出错时,重置同步设置
mysql> change master to master_auto_position=0;
Query OK, 0 rows affected (0.34 sec)
# 设置同步选项
mysql> change master to master_host='cszjy-sql01.mysql.rds.aliyuncs.com', master_port = 3306, master_user = 'cszjy', master_password='r48T7HQp9eiNL99n',master_log_file='mysql-bin.003221',master_log_pos=4;
Query OK, 0 rows affected, 2 warnings (0.51 sec)
# 启动从实例
mysql> START SLAVE;
Query OK, 0 rows affected (0.08 sec)
# 查看实例状态
mysql> SHOW SLAVE STATUS \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: cszjy-sql01.mysql.rds.aliyuncs.com
Master_User: cszjy
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.003221
Read_Master_Log_Pos: 8078916
Relay_Log_File: server-4-241-relay-bin.000002
Relay_Log_Pos: 4520068
Relay_Master_Log_File: mysql-bin.003221
Slave_IO_Running: Yes
Slave_SQL_Running: Yes