MySQL 双向数据同步解决方案
源代码在线查看: mysql 双向数据同步解决方案.txt
MySQL 双向数据同步解决方案
来源:iam286 作者: 发布时间:2008-07-18 点击:190
国内网络的现状就让人很郁闷,为什么?因为明明很快的网络,非要搞个电信网通互联不通,跨网访问的时候速度非常慢。不得已只能在电信和网通各放一台服务器,那么这种情况下,数据库又如何同步呢?
以下的文章或许可以帮助大家:
一、配置主master(192.168.0.1)数据库如下:
1、 DOWLOAD mysql-4.1.15.tar.gz源码包,在192.168.0.1(master机器)手动编译安装
注:MASTER 服务器同时担任SLAVE 服务器功能因为需要双向同步
[root@localhost mysql-4.1.15]# tar –xzvf mysql-4.1.15.tar.gz
[root@localhost mysql-4.1.15]# cd mysql-4.1.15
[root@localhost mysql-4.1.15]#./configure –prefix=/usr /macro/mysql --with-charset=’gbk’
[root@localhost mysql-4.1.15]#make
[root@localhost mysql-4.1.15]#make install
[root@localhost mysql-4.1.15]#cp support-file/my-medium.cnf /etc/my.cnf
[root@localhost mysql-4.1.15]#cd ../mysql
[root@localhost mysql-4.1.15]#bin/mysql_install_db --user=mysql (注:如果在所有配置都完成后,双向同步不能成功,则问题有可能出在这一行命令,那么就重新编译安装mysql,然后到此步骤后,执行如下命令:
[root@localhost mysql-4.1.15]#bin/mysql_install_db --user=mysql --log-bin
[root@localhost mysql-4.1.15]# bin/mysql_install_db --user=mysql )
[root@localhost mysql-4.1.15]#chown –R root . (root 后边有个点意思是所有的文件)
[root@localhost mysql-4.1.15]#chwon –R mysql var/
[root@localhost mysql-4.1.15]#chgrh –R .
[root@localhost mysql-4.1.15]#bin/mysqld_safe –user=mysql &
[root@localhost mysql-4.1.15]#bin/mysql
mysql>grant all privileges on *.* to dbmysql@192.168.0.2 identified by ‘1234’;
mysql>exit
2.配置/etc/my.cnf
[root@localhost mysql-4.1.15]#vi /etc/my.cnf
加入如下代码:
log-bin
server-id = 1
sql-bin-update-same
binlog-do-db=dbmysql
master-host=192.168.0.2
master-user=dbmysql
master-password='1234'
master-port=3306
master-connect-retry=30
replicate-do-db=dbmysql
log-slave-updates
编辑完my.cnf 后保存退出,之后执行如下命令:
[root@localhost mysql-4.1.15]#bin/mysqladmin shutdown
二、配置副SLAVE(192.168.0.2)数据库如下:
注意:这台机器首先是SLAVE服务器也同时担任MASTER服务器
1、DOWLOAD mysql-4.1.15.tar.gz源码包,在192.168.0.2(SLAVE机器)手动编译安装
[root@localhost mysql-4.1.15]# tar –xzvf mysql-4.1.15.tar.gz
[root@localhost mysql-4.1.15]# cd mysql-4.1.15
[root@localhost mysql-4.1.15]#./configure –prefix=/usr /macro/mysql --with-charrset=’gbk’
[root@localhost mysql-4.1.15]#make
[root@localhost mysql-4.1.15]#make install
[root@localhost mysql-4.1.15]#cp support-file/my-medium.cnf /etc/my.cnf
[root@localhost mysql-4.1.15]#cd ../mysql
[root@localhost mysql-4.1.15]#bin/mysql_install_db --user=mysql --log-bin
[root@localhost mysql-4.1.15]#chown –R root . (root 后边有个点意思是所有的文件)
[root@localhost mysql-4.1.15]#chwon –R mysql var/
[root@localhost mysql-4.1.15]#chgrh –R .
[root@localhost mysql-4.1.15]#bin/mysqld_safe –user=mysql &
[root@localhost mysql-4.1.15]#bin/mysql
mysql>grant all privileges on *.* to dbmysql@192.168.0.2 identified by ‘1234’;
mysql>exit
2.配置/etc/my.cnf
log-bin
server-id = 2
binlog-do-db=dbmysql
sql-bin-update-same
master-host=192.168.0.1
master-user=dbmysql
master-password='1234'
master-port=3306
master-connect-retry=30
replicate-do-db=dbmysql
log-slave-updates
#
编辑完my.cnf 后保存退出,之后执行如下命令:
[root@localhost mysql-4.1.15]#bin/mysqladmin shutdown
三、测试mysql数据库双向同步:
1. 重新启动两台mysql数据库
2. 在两台mysql服务器上执行如下步骤查看配置:
mysql> show master status;
mysql>show slave status;
察看配置是否正确
3、在配置文件/etc/my.cnf中要同步的数据库是dbmysql,所以新建mysql服务器没有dbmysql数据库,执行如下命令建立 dbmysql数据库(注:由于已经配置为双向数据库同步,所以在任何一台MYSQL服务器上执行如下命令都可以在另一台机器上都能同步:)
以192.168.0.1服务器为例:
mysql> create database dbmysql:
当你在登陆到192.168.0.2服务器的时候就可以看到dbmysql数据库了。同理当你在服务器172.168.0230上建立数据库dbmysql的时候在192.168.0.1
上就可以同步了。同时也可以建立table测试。