今天下午,利用两个小时的时间,走了不少弯路,但也终于实现了两台服务器上Mysql数据库的“主从同步”。在做的过程的中我把整个过程记录下来。

从搜索引擎了解到关于主从同步的由来,mysql是从3.23.15版本以后提供数据库复制(replication)功能,用该功能可以实现两个数据库同步主从模式互相备份模式的功能。今天我先来记录主从同步。

两台VPS服务器均为:CentOS5.4     Mysql5.1.60   由于VPS仅用来做实验,所以我把IP也公布出来。

主服务器IP:184.22.185.131(洛杉矶)   从服务器IP:173.208.211.22(堪萨斯)

准备工作:

1.假设Mysql已经安装好,如果没有安装,请先安装好mysql,我的两个服务器mysql安装目录均为/usr/local/mysql

2.查看防火墙状态,命令为:service iptables status     如果没有关闭,请关闭掉防火墙,命令为:service iptables stop 。由于我对防火墙也不是太了解,有的朋友也说两台服务器互相ping通即可。我在实验过程已经把防火墙关闭

3.我们把主服务器IP:184.22.185.131(洛杉矶) 称作A服务器(master)从服务器IP:173.208.211.22(堪萨斯)称作B服务器(slave)接下来我们来分别对两台服务器进行配置。

主服务器184.22.185.131(A服务器配置)的配置步骤:

1.增加一个用户同步使用的用户账号backup,并且赋予其对173.208.211.22也就是从服务器 (slave)有File权限,同时还要给它赋予REPLICATION SLAVE权限。执行命令如下:

  1. GRANT FILE ON *.* TO ’backup’@’173.208.211.22′ IDENTIFIED BY ’123456′;   
  2. GRANT REPLICATION SLAVE ON *.* TO ’backup’@’173.208.211.22′ IDENTIFIED BY ’123456′;  

2、增加一个数据库test作为同步数据库,并在其中创建一个mytest表(或者你可以指定一个数据库,这里为了演示,我们新建一个只有一个表的数据库),执行命令如下: 

  1. create database test;   
  2. create table mytest (username varchar(20),password varchar(20));  

3.修改主服务器184.22.185.131的配置文件/etc/my.cnf   

由于较新版本的mysql可能有些区别。所以你需要在配置文件中配置如下三项。

  1. server-id = 1      //Server 标识   
  2. log-bin= mysql-bin
  3. binlog-do-db=test  //指定需要日志的数据库  

 截图如下所示:
数据库主从同步
如果被注释掉,你把注释符去掉,如果没有的,你得添加上。总之你得保证配置文件中,大概如图所示位置有这样三项。表达不是很有说服力。所以准备明天把my.cnf这个配置文件完全剖析一下。
4.重启主服务器上数据库服务器。
service mysqld restart   或者/usr/local/mysql/bin/mysql restart
5.进入mysql命令行查看是否成功。
首先执行命令:mysql  -u root -p     输入密码进入mysql命令行。
然后执行命令:show variable like ‘server_id’;       //注意单引号为半角下符号
出现如下即可。
主从数据库同步
然后再执行命令:show master statusG;
出现如下表示配置成功。
数据库同步

至此主服务器配置完成。———————————————————————————-

从服务器173.208.211.22(B服务器配置)的配置步骤:

1.首先进入mysql数据库 执行命令:mysql -u root -p

2.创建一个同样的数据库test并创建同样的表mytest,执行如下命令:

  1. createdatabase test;
  2. createtable mytest (username varchar(20),passwordvarchar(20));

 3.修改从服务器中配置文件/etc/my.cnf

在服务器中添加如下配置或者修改配置文件中相关信息:

  1. server-id=2   
  2. master-host=184.22.185.131   
  3. master-user=backup    //同步用户帐号   
  4. master-password=123456   
  5. master-port=3306   
  6. master-connect-retry=60 //预设重试间隔60秒   
  7. replicate-do-db=test    //告诉slave只做backup数据库的更新   

 4、重启数据库服务:

执行 service mysqld restart    或者/usr/local/mysql/bin/mysql restart
5、进入mysql数据库
执行 mysql -u root -p   输入密码即可进入mysql命令行。
6.然后执行命令:show variable like ‘server_id’;       //注意单引号为半角下符号
出现如下即可。
数据库主从同步
然后再执行命令:show  slave statusG;
出现如下表示配置成功。
至此从服务器配置也完毕。
此处注意的时,如果发现不成功,修改/etc/my.cnf 文件,首先需要删除master.info文件,再重启才才有效。
执行:rm -f /usr/local/mysql/var/master.info   删除master.info
然后再重启mysql才能修改。
 
—————————————————————
主从服务器同步验证操作:

这样配置就完成了,我们就在主服务器上对test数据库进行操作。然后看从服务器上数据库是否改变。如果改变即表示成功。
 我这儿举一个例子:
在A主服务器上执行插入操作:
  1. use test;   
  2. insert into mytest values(‘tongbutest’,”testtongbu’);       //注意符号为英文半角   
  3. select * from mytest;  

 
可以看到是否插入成功。
在B服务器查看数据库:
 

 
  1. use test;   
  2. select * from mytest;  

如果发现有在A服务器上插入的表格内容,即表示成功。
当然这只是B同步A上的内容,至于其他的在以后操作吧。
主要参考链接如下:

关于两台服务器上Mysql数据库“主从同步”实战记录(一)

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.