最近想研究下mysql的主从复制,于是找了两台空闲的服务器,搭建环境,在此备案。
os:centos5.5
mysql:mysql-5.5.30-linux2.6-x86_64这个是二进制编译版,本来想下载源码包自己编译,连着用一下cmake的,结果找了半天没找到,烦了,用二进制版本测试一样,反正重点是配置主从。
主ip:172.16.16.107
从ip:172.16.16.106
进入mysql的目录后发现了INSTALL-BINARY文件,里面有详细的安装指导,照着一步步做就ok了。
之后/etc/init.d/mysql.server start,这样,两台mysql就算是启动起来了
然后配置主从
在my.cnf里面加上二进制文件,server-id等信息,只需要注意主从的server-id不能一样。
然后在主上执行 grant replication slave on *.* to test@'%' identifyed by 'test';
查看主的二进制日志状态,show master status;
在从上执行
mysql>change master to master_host='172.16.16.107',master_user='test',
master_password='test',master_log_file='mysql-bin.000006',master_log_pos=107;
其中,master_log_file='mysql-bin.000006',master_log_pos=107;需要和show master status;执行后的数据一致。
在从上执行slave start;
这样,从就应该可以同步到主的数据了。
ps:
如果想做互为主从的话,那么就在之前的从上执行grant replication slave on *.* to test@'%' identifyed by 'test';
然后同样的,执行和之前主一样的show master status;
然后在之前的主上执行
mysql>change master to master_host='172.16.16.106',master_user='test',
master_password='test',master_log_file='mysql-bin.000006',master_log_pos=107;
这样,在106上执行的语句就能同步到107上,而在107上执行的语句,同样的,也能同步到106上了。
over。