MySQL Replication 搭建步骤(InnoDB)

时间:2021-03-26 07:32:45
一个快速配置步骤:

1) master端:启用binary logging,设置唯一的server ID(需重启)
 例,修改my.cnf为:

[mysqld] 
log-bin=mysql-bin server-id=1 innodb_flush_log_at_trx_commit=1 sync_binlog=1

2) slave端:设置唯一的server ID(需重启)
 例,修改my.cnf为:

[mysqld]
server-id=2

3) master端:创建一个用户帐号,用于复制用途,slave端会使用它连接master获取binlog
 例:

mysql> CREATE USER 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.mydomain.com';

4) master端:暂停应用访问,锁定表禁止改动:
例:

mysql> FLUSH TABLES WITH READ LOCK; # do not exit this session, otherwise the lock will be released

5) master端:获取当年binlog位置
 例:

mysql > SHOW MASTER STATUS;

6) master端:创建一份数据快照,然后就可以恢复应用 
例1:使用 mysqldump

mysqldump --all-databases --master-data > dbdump.db
mysql> unlock tables;

 
例 2:使用冷备份

mysqladmin shutdown
tar cf /tmp/dbdump.tar ./data
restart master server

7) slave端:将master端的数据快照导入
 例 1:使用 mysqlimport

start slave server using " --skip-slave-start" option
mysql < fulldb.dump

 
例 2:使用冷备份

shutdown slave server
copy backup files from master server
tar xvf dbdump.tar
set correct file permission
start slave server using " --skip-slave-start" option

8) slave端:配置复制,指定master信息
 例:

mysql> CHANGE MASTER TO
-> MASTER_HOST='master_host_name',
-> MASTER_USER='replication_user_name',
-> MASTER_PASSWORD='replication_password',
-> MASTER_LOG_FILE='recorded_log_file_name',
-> MASTER_LOG_POS=recorded_log_position;

9) slave端:启动复制线程
例:

mysql> START SLAVE;