注意:从服务器要么是相同版本或者高于主服务器版本,原因是低版本的做从服务器无法接受高版本主服务器的语法或者新特性。
主服务器A-192.168.58.130
从服务器B-192.168.58.131
1、关闭防火墙(A-B): service iptables stop
2、关闭selinux(A-B):
setenforce 0
3、主服务器配置:
登陆用户权限配置:grant all on *.* to backup@'192.168.58.131' identified by '123456';
4、主数据库的配置:
log-bin
server-id = 1
binlog-do-db=test //备份的数据库名,可以添加多个,逗号隔开
5、重新启动数据库: /etc/init.d/msyq ld restart
6、从服务器配置:
log-bin
server-id = 2
#sql-bin-update-same
master-host=192.168.58.130
master-user=backup
master-password=123456
master-port=3306
master-connect-retry=10
replicate-do-db=test
7、到此为止配置完成了(第一次配置需要重启mysql),剩下的工作就是再主从热备开始前保持主从的数据完全一致:
对于myisam的表,直接把master机器mysql/data目录下面的所有文件同步到slave机器对应的目录即可
对应innodb的表,不能直接同步文件,需要用mysqldump导出数据,然后在slave机器上面导入即可
注意在同步数据期间,master机器锁表成只读模式: 8、mysql>flush tables with read lock; //所住表进行备份
10、查看日志文件名称和断点值:
mysql> show master status;
+---------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------------+----------+--------------+------------------+
| mysql-bin.000012 | 4117873 | | test |
+---------------------+----------+--------------+------------------+ 11、从服务器上执行:
mysql>slave stop;
mysql> CHANGE MASTER TO
-> MASTER_LOG_FILE=’mysql-bin.000012’,
-> MASTER_LOG_POS=4117873;
mysql>slave start;
12、主服务器上执行:
mysql> unlock tables;
13、在主服务上建表,插入数据测试从服务器的更改情况。