今天下午,利用两个小时的时间,走了不少弯路,但也终于实现了两台服务器上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权限。执行命令如下:
- GRANT FILE ON *.* TO ’backup’@’173.208.211.22′ IDENTIFIED BY ’123456′;
- GRANT REPLICATION SLAVE ON *.* TO ’backup’@’173.208.211.22′ IDENTIFIED BY ’123456′;
2、增加一个数据库test作为同步数据库,并在其中创建一个mytest表(或者你可以指定一个数据库,这里为了演示,我们新建一个只有一个表的数据库),执行命令如下:
- create database test;
- create table mytest (username varchar(20),password varchar(20));
3.修改主服务器184.22.185.131的配置文件/etc/my.cnf
由于较新版本的mysql可能有些区别。所以你需要在配置文件中配置如下三项。
- server-id = 1 //Server 标识
- log-bin= mysql-bin
- binlog-do-db=test //指定需要日志的数据库
至此主服务器配置完成。———————————————————————————-
从服务器173.208.211.22(B服务器配置)的配置步骤:
1.首先进入mysql数据库 执行命令:mysql -u root -p
2.创建一个同样的数据库test并创建同样的表mytest,执行如下命令:
- createdatabase test;
- createtable mytest (username varchar(20),passwordvarchar(20));
3.修改从服务器中配置文件/etc/my.cnf
在服务器中添加如下配置或者修改配置文件中相关信息:
- server-id=2
- master-host=184.22.185.131
- master-user=backup //同步用户帐号
- master-password=123456
- master-port=3306
- master-connect-retry=60 //预设重试间隔60秒
- replicate-do-db=test //告诉slave只做backup数据库的更新
4、重启数据库服务:
- use test;
- insert into mytest values(‘tongbutest’,"testtongbu’); //注意符号为英文半角
- select * from mytest;
- use test;
- select * from mytest;