环境:
master: 192.168.0.4 mysql-5.5.3-m3
slave: 192.168.0.2 mysql-5.5.20
先回答上一篇提出的问题:有一部分是myisam类型的表, 有一部分是innodb类型的表, 该如何对master做“快照”呢?
其实答案有很多:
a) 先锁表, 记录binlog文件和位置信息。 然后用mysqldump --single-transaction和--master-data=1 这两个选项, 把所有要同步的库dump出来就OK
b) 先锁表, 记录binlog文件和位置信息。 然后用用系统命令拷贝好数据目录, 另外对于innodb表, 使用mysqldump --single-transaction把这些innodb表单独dump出来就OK , 到slave上也要做相应的两步操作, 详细如下:
这里假设master/slave上的配置文件以及相关的授权都已经OK。
STEP 1. 登录master服务器, 打开两个虚拟终端, 一个在系统命令行用来操作拷贝, 一个用来进入mysql命令行进行锁表操作
mysql命令行: mysql> FLUSH TABLES WITH READ LOCK; # 锁表
mysql命令行: mysql> show master status; # 查看当前binlog文件名及binlog的位置信息, 并记录下来。 比如 binlog.000049 | 3560393
系统命令行: # cd master的数据文件目录
系统命令行: