目录
MySQL 支持一种叫复制(replication)的特性,作用是可以将MySQL主服务器数据(Master)异步复制到MySQL从服务器(Slave),以实现多台服务器数据的实时同步。
MySQL Replication 详细配置请参考官方手册:MySQL中的复制 、 Replication
一、MySQL主复制配置
1、清理MySQL日志
sql
mysql>show binary logs;
mysql>purge binary logs to 'mysql-bin.000325';
mysql>FLUSH LOGS;2、锁表、获取主复制日志名和偏移量
sql
mysql>FLUSH TABLES WITH READ LOCK;
mysql>show master status\G
mysql>UNLOCK TABLES;打包MySQL数据,并传送到从服务器
bash
cd /usr/local/mysql/data
tar -cvf /tmp/mysql-snapshot.tar .
scp /tmp/mysql-snapshot.tar root@176.32.85.16:/tmp3、创建从复制连接用户
注意修改默认用户名:repl、密码:slavepass
sql
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'slavepass';4、MySQL配置文件
bash
[mysqld]
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
binlog-ignore-db=phpmyadmin
innodb_flush_log_at_trx_commit=1
slave-skip-errors=all配置主-主服务器时必须额外使用下面选项:
bash
log-slave-updates
sync_binlog=1
auto_increment_offset=2
auto_increment_increment=1二、MySQL从复制配置
1、还原数据快照
bash
cd /usr/local/mysql/data
tar -xvf /tmp/mysql-snapshot.tar2、配置主服务器信息
sql
CHANGE MASTER TO
MASTER_HOST='106.187.38.210',
MASTER_USER='repl',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=1579;3、启动从复制进程、查看状态。
sql
mysql>start slave;
mysql>SHOW SLAVE STATUS\G;注:上面所有操作都是可以在phpMyadmin中以图形化方式完成。
