基于log file和position的数据库复制
准备条件:
Centos虚拟机1的IP:192.168.28.128;
Centos虚拟机2的IP:192.168.28.129;
主机上的操作
1、 主机上添加授权用户:
mysql> grant all on *.* to ‘zeng1’@’192.168.28.129’identified by ‘zxz’;
2、 通过测试,可以在192.168.28.129机器上访问192.168.28.128上的mysql:
shell> mysql –uzeng1 –pzxz –h192.168.28.128
3、 配置主机的my.cnf文件
log_bin=mysql-bin
server-id=1
4、 复制现有数据库中的表
测试时建立test数据库,然后创建表t1,t2;
5、 备份导出主服务器test数据库中的所有内容:
shell>mysqldump –uroot –pzxz test –l –F >/tmp/test.sql
6、将/tmp/test.sql文件传送给从服务器192.168.28.129;
shell>scp/tmp/test.sql 192.168.28.129:/tmp/
7、 在从服务器中导入test数据库中的内容:
清空bin-log:mysql> reset master;
导入:shell> mysql –uroot –pzxz test </tmp/test.sql(这里之前类似使用mysqldump工具导入失败,后面转向使用mysql)
8、 自动复制过程(从机上操作)
A) 在从库的mysql中:
change master to
MASTER_HOST=’192.168.28.128’,
|
MASTER_USER=’root’,
MASTER_PASSWORD=’zxz’,
MASTER_LOG_FILE=’mysql-bin.???’
MASTER_LOG_POS=??
B) start slave;
C) 查看同步状态:showslave status\G