+ -
当前位置:首页 → 问答吧 → mysql的双向同步

mysql的双向同步

时间:2008-10-06

来源:互联网

关于mysql的双向同步的不在进行详细的介绍、他的原理和单向同步基本相似所以下面只介绍具体的配置


一、主机的规化

mysql数据库双机同步的准备工作
1、二台mysql服务器
2、安装linux rhel5/centos 等




主机名
IP
port
App
目录
备注

mxl
10.1.1.1
3306
mysql
/var/lib/mysql
数据库服务器

nkmxl
10.1.1.2
3306
mysql
/var/lib/mysql
数据库服务器










二、同步的配置
配置master

1、启动主机mxl的mysql 创建mysql同步和管理的用户

mysql>service mysqld restart
mysql> grant replication slave on *.* to 'replication'@'%' identified by 'slave';
#replication 是用户

#slave 是密码

下面是创建mysql 管理员的用户和密码
mysql> Grant ALL PRIVILEGES ON *.* TO u1@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.12 sec)


mysql> Flush privileges;
创建完毕后刷新数据库
Query OK, 0 rows affected (0.03 sec)



mysql> exit
2、配置主机my.cnf
首先要把/usr/share/doc/mysql-server-5.0.51a/ my-medium.cnf 文件拷贝到
/etc/my.cnf
然后进行配置如下
[root@mxl etc]# vi my.cnf
配置的内容如下

log-bin=mysql-bin

server-id
= 1
#如果是配置单向同步下面就不需要进行设置
master-host
=
10.1.1.2
master-user
=
u6
master-password =
123
master-port
=
3306
log-bin=/var/log/mysql/updatelog
log_bin=/var/log/mysql/mysql-bin-log 如果设置此项
下面三项不必添加也能实现同步
binlog-ignore-db=mysql
replicate-do-db=phpwind
binlog-do-db=phpwind



binlog-ignore-db=mysql
replicate-do-db=phpwind
binlog-do-db=phpwind
Service mysqld restart 重启mysql 服务器

看一下/var/log/mysqld.log 日志有没有错,当然从服务器的mysql关闭时也会报错,这个关系不大主要看
用show slave status\G;看一下从服务器的同步情况

Slave_IO_Running: Yes
Slave_SQL_Running: Yes如果都是yes,那代表此配置没有错误

配置slave




创建mysql同步和管理的用户(同上)
mysql> grant replication slave on *.* to 'replication'@'%' identified by 'slave';

mysql> Grant ALL PRIVILEGES ON *.* TO u1@'%' IDENTIFIED BY '123456';


mysql> Flush privileges;


mysql> exit
首先要把/usr/share/doc/mysql-server-5.0.51a/ my-medium.cnf 文件拷贝到
/etc/my.cnf

主机vfast /etc/my.cnf 的配置内容如下
server-id
= 2
master-host
=
10.1.1.1
master-user
=
u6
master-password =
123
master-port
=
3306
log-bin=mysql-bin
master-connect-retry=60
replicate-ignore-db=mysql
replicate-do-db=phpwind
log-bin=/var/log/mysql/updatelog
binlog-do-db=phpwind
binlog-ignore-db=mysql
log_bin=/var/log/mysql/mysql-bin-log 如果设置此项
下面三项不必添加也能实现同步
binlog-ignore-db=mysql
replicate-do-db=phpwind
binlog-do-db=phpwind



Sevice
mysqld restart 重启mysql 服务
测试:
进入mysql后
show slave status\G;看一下从服务器的同步情况

Slave_IO_Running: Yes
Slave_SQL_Running: Yes如果都是yes,那代表此配置没有错误

三、测试结果
最后还可以使用SQLyog Enterprise 进行测试
方法:用上面创建的用户 u1连接二台主机的mysql


=700) window.open('http://file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image001.png');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >

=700) window.open('http://file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image002.png');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
连接后
我们选择phpwind库然后分别进行添加内容看看有没有同步

=700) window.open('http://file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image003.png');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >





=700) window.open('http://file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image003.png');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >



希望能给大家一起帮助!

作者: sharpgun   发布时间: 2008-10-06

http://blog.chinaunix.net/u/29134/showart_441667.html

作者: 5136456   发布时间: 2008-10-06

=700) window.open('http://linux.chinaunix.net/bbs/images/smilies/em09.gif');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >=700) window.open('http://linux.chinaunix.net/bbs/images/smilies/em09.gif');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >

作者: 51.vc   发布时间: 2008-10-06

大哥,把你的认证部分写好!
还有 Slave_IO_Running: No 或 Slave_SQL_Running: No 的解决方法。

作者: 野火燒不盡   发布时间: 2008-10-06

我觉得双向同步不可靠.

作者: jjp1   发布时间: 2008-10-06

哪些方面不可靠 分享下啊

作者: fdaohe   发布时间: 2008-10-06