环境:已经在centos下安装好mysql,安装参考:http://www.cnblogs.com/bookwed/p/5896619.html,安装好主数据库后,可以克隆一份,注意修改ip等。
192.168.137.10 主
192.168.137.11 从
1、修改master配置,vi /etc/my.cnf,重启服务
log_bin=mysql-bin #启用二进制日志
server_id =10 #服务器唯一ID,随便写,不要重复
lower_case_table_names = 1 #不区分大小写
2、修改slave配置,vi /etc/my.cnf,重启服务
log_bin=mysql-bin
server_id =11
lower_case_table_names = 1
3、创建用户并授权,在master上执行
useradd cat
grant replication slave on *.* to 'cat'@'%' identified by '123456';
flush privileges;
4、master上设置读锁定
flush tables with read lock;
5、查看master上的bin-log日志和偏移量
show master status
6、用dump备份master
mysqldump -uroot -proot test > test.sql
unlock tables; #备份完后,master恢复写操作
7、把备份恢复到slave数据库上
mysql -uroot -proot test < test.sql
8、slave执行手动同步
mysql>change master to
master_host='192.168.137.10',
master_user='cat',
master_password='123456',
master_port=3306,
master_log_file='mysql-bin.000002', #参考第5步的值
master_log_pos=716 #参考第5步的值
mysql>start slave; #启动从服务器复制功能
9、检查状态
标红的部分必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)
另外一个命令:show processlist
10、主从测试
在master上,创建一个库、建立一个表,插入几条数据,看是否slave上已同步过来。
说明:
1、有几步可以忽略,4、6、7这几步是在模拟生产环境下的数据库处理,主要是为了了解一下在master上已有数据的情况做主从复制的整个流程,如果是自己测试,这几步可以忽略,因为主库本来就是自己在操作,所以不可能有别的人对数据库做更新操作,也就不用再备份恢复了。
2、修改从属配置,即第8步,先stop slave,再执行一遍第8步。