MySQL 5.6.x 配置数据库主从复制

[转]http://blog.csdn.net/lwprain/article/details/10966837

备注: 在配置之前如果之前配置过主从没成功的话, 最好把master数据库目录下的mysql-bin.000000x 和 mysql-bin.index等, 以及salve下的relay-bin.00000x, relay-bin.index, log-bin 等删除了, 重启服务再配置

同步状态关键语句,每次主库重启都要在slave执行:

show master status;
CHANGE MASTER TO MASTER_HOST='192.168.0.45',MASTER_USER='slave_user',MASTER_PASSWORD='root';

 

如下操作均在vmware 虚拟机中winows xp 测试成功

中间走了很多弯路,网上的很多资料都是针对5.1以前的版本,在新版中根本无法使用,所以根据自己的实践整理了这篇文章

主服务:192.168.131.21

从服务器:192.168.131.22

1、主机的配置

my.ini中配置:

server-id=1 
binlog_format="ROW"
log-bin=mysql-bin

 

启动服务后进入mysql命令行执行如下操作

GRANT ALL ON *.* TO 'slave1'@'192.168.131.22'  IDENTIFIED BY '123456';

如果需要进行某个数据库的同步的话,最好只创建对应数据库的权限,如:

GRANT ALL ON test1.* TO 'slave1'@'192.168.131.22'  IDENTIFIED BY '123456';

这样只会同步该数据库的内容。

2、从服务器设置

my.ini:

server-id=2
relay-log-purge=1
skip-slave-start 
#此处为不同步mysql数据库的内容此处如果为多数据库的话中间以逗号分开
replicate-ignore-db=mysql 

然后启动mysql 进入命令行 执行如下命令

CHANGE MASTER TO MASTER_HOST='192.168.131.21', MASTER_USER='slave1',  MASTER_PASSWORD='123456';

3、启动主从复制

首先启动主服务器的服务

其次启动从服务器的服务

然后在从服务器命令行执行

start slave;

然后执行如下命令 查看从服务器状态

SHOW SLAVE STATUS\G

 

显示:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes必须为yes才行

 

还要注意的是:

我在做从服务器时,是停止服务,然后整体复制的data目录,如果不进行任何修改的话,会出现如下提示:

 [ERROR] Slave I/O: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work. Error_code: 1593
121122 17:40:58 [Note] Slave I/O thread exiting, read up to log 'FIRST', position 4

这个时候,应该删除data目录下的auto.cnf,然后重启服务

执行 start slave;即可

之后在主服务器上创建数据库

再从服务器上就可看到同步过来的数据了


 还有如果更改从服务器的机器名的话 可这样这样执行命令:

stop slave;

reset slave;

start slave;

试试

 

posted @ 2015-12-29 17:34  TuWei  阅读(254)  评论(0编辑  收藏  举报