标签:mysql主从
master主机A:192.168.200.132
slave从机B :192.168.200.130
打开配置文件my.cnf修改以下内容:
server-id = 1log-bin = mysql-bin
修改完毕重启数据库:service mysqld restart
进入到数据库,创建一个专门传输binlog的用户:
grant replication slave on *.* to‘repl‘@‘192.168.200.130‘ identified by ‘123‘;
用户名字叫做repl,密码是123。
接下来执行:
flush tables with read lock; flush privileges; show master status;
解释:
第一句:把表的读锁死,一般都是用在数据库联机备份,这个时候数据库的写操作将被阻塞,读操作顺利进行。解锁用unlock tables;
第二句:刷新权限;
第三句:一定要用笔记住File和Position列的内容,一会要用到。
把主机A的所有数据库备份出来,假设A有4个database,分别是mysql,test,db1,z,那么通过命令mysqldump一个个的全部备份出来,比如:
mysqldump -uroot -p123 db1 > /test/db1.sql
mysqldump -uroot -p123 mysql > /test/mysql.sql
mysqldump -uroot -p123 test > /test/test.sql
mysqldump -uroot -p123 z > /test/z.sql
通过rsync把数据库的备份数据传输到从机B:
rsync -av /testA/ 192.168.200.130:/testB/
在从机B的mysql创建和主机A的mysql相同的database,既然主机A的database有mysql,test,db1,z,那就去创建好
然后把主机A传输过来的数据分别导入对应的database中
mysql db1 < /testB/db1.sql
mysql mysql < /testB/mysql.sql
mysql test < /testB/test.sql
mysql z < /testB/z.sql
打开配置文件my.cnf修改以下内容
server-id = 2 //这个数不用管值不能和主一样
log-bin=mysql-bin
可选参数(2选1,或者不写那就整体的同步):replicatedo_wild_do_table=test.%,test2.% 和 replicatedo_wild_ignore_table=test.%,test2.%
修改完毕重启数据库:service mysqld restart
登陆从的mysql
slave stop; change master to master_host=‘192.168.200.132‘, master_port=3307, master_user=‘repl‘, master_password=‘123‘, master_log_file=‘mysql-bin.000010‘, master_log_pos=319; slave start;
解释:slave stop停掉数据库 (为了配置以下参数) 注意,第二个语句最后的两个值就要看主的实际的File和Position列的内容
从上查看从的状态: show slave status\G;
有2个yes就表示成功了
5.测试
记得解除主机A的mysql锁头:unlock tables;
本文出自 “11165660” 博客,请务必保留此出处http://11175660.blog.51cto.com/11165660/1845266
标签:mysql主从
原文地址:http://11175660.blog.51cto.com/11165660/1845266