#basedir = /usr #password = your_password # Here follows entries for some specific programs basedir = /usr datadir = /data/mysql_data13307 log-error = /data/logs/mysql13307_error.log pid-file = /data/var/run/mysqld/mysqld13307.pid socket = /data/var/run/mysqld/mysqld13307.sock log-bin = /data/logs/binlog13307/binlog binlog_cache_size = 512M binlog_format = MIXED max_binlog_cache_size = 512M max_binlog_size = 200M relay-log-index = /data/logs/relaylog13307/relaylog relay-log-info-file = /data/logs/relaylog13307/relaylog relay-log = /data/logs/relaylog13307/relaylog expire_logs_days = 7 innodb_flush_log_at_trx_commit=0 sync_binlog=0 slave_skip_errors = 1062,1032 #下面是指定哪些数据库需要被同步,哪些不需要被同步,一般来讲,只有数据的库才需要被同步,用户信息一般不同步。 # The MySQL server replicate-do-db = aaa replicate-do-db = bbbb replicate-do-db = ccccc replicate-do-db = 12ead replicate-do-db = naiuqn replicate-ignore-db = mysql replicate-ignore-db = information_schema replicate-ignore-db = performance_schema #slow_query_log = 1 #slow_query_log_file=/data/mysql/logs/slowquery.log #long_query_time=2 #log_queries_not_using_indexes [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash [myisamchk] key_buffer_size = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout
2、上面的步骤配置完了以后
将RDS的白名单,设置好,允许ECS远程连接RDS,然后对各个表的数据进行dump
一般来讲,高权限用户只能逐个的mysqldump各个数据库
mysqldump -h rds内网地址 -u用户 -p --database 数据库名 >> /tmp/数据库名1.sql
mysqldump -h rds内网地址 -u用户 -p --database 数据库名 >> /tmp/数据库名2.sql
mysqldump -h rds内网地址 -u用户 -p --database 数据库名 >> /tmp/数据库名3.sql
这一步主要操作是将现阶段的数据库都备份出来,然后执行下面的操作。
mysql> show master status\G #请注意,下面的信息全都要留好,因为后面会在自建数据库中需要指定这些数据
*************************** 1. row ***************************
File: mysql-bin.001461
Position: 15351962
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set: 3fb72bdd-02d5-11e6-a554-6c92bf2c0469:1-1751591,
4e5c900f-02d5-11e6-a555-ecf4bbded8cc:1-54349982,
ac5fa92d-5b22-11e8-afcd-7cd30abead5e:1-135523638,
d3615618-7f50-11e6-9110-d89d672b73e0:1-4
1 row in set (0.01 sec)
在主库上我们需要操作的就这么多,下面我们来配置从库
3、在从库中,将上面的各个数据库导入
#先查看dump出来的sql里面有没有create语句,如果有的话,忽略这些create语句。 create database 数据库1; create database 数据库2; create database 数据库3; use 数据库1; source /tmp/数据库1.sql use 数据库2; source /tmp/数据库2.sql use 数据库3; source /tmp/数据库3.sql
#source语句执行不报错,就算导入成功了。
然后我们进行chang master 语句
change master to MASTER_HOST=‘RDS内网地址‘,
MASTER_USER=‘slave‘,
MASTER_PASSWORD=‘slave用户的密码‘,
MASTER_LOG_FILE=‘在rds上show master status的File列内容‘,
MASTER_LOG_POS=15351962; #这个log pos是从上面show master status中获取
然后直接执行以下命令
1.start slave;#注意,如果之前进行过changemaster 这块start slave的时候就会报如下错误。
ERROR 1776 (HY000): Parameters MASTER_LOG_FILE, MASTER_LOG_POS, RELAY_LOG_FILE and RELAY_LOG_POS cannot be set when MASTER_AUTO_POSITION is active.
需要执行以下语句(如果不报错,请忽略这一步)
change master to master_auto_position=0;
2.show slave status;
#当看到这两项为YES的时候,证明主从复制已经成功,自己进行测试即可
Slave_IO_Running:YES Slave_SQL_Running:YES
RDS mysql 与ECS自建mysql做主从备份
标签:HERE 建模 style keyword -name char mem 12px replicat