参考文章 http://blog.youkuaiyun.com/nuanchun666/article/details/2069301 实现了 mysql 数据库的同步,在这里简单记录一下工程,以备后用。
1. master 主机 192.168.2.10,slave 主机 192.168.2.20,均为 winxp 系统,mysql 5.1。
2. 给 master 主机增加同步使用的账户 backup 和密码 1234,并赋予 slave 主机有 FILE 和 REPLICATION SLAVE 权限。
GRANT FILE ON *.* TO 'backup'@'192.168.2.20' IDENTIFIED BY '1234';
GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.2.20' IDENTIFIED BY '1234';
3. 给 master 主机增加一个数据库作为同步数据库。
CREATE DATABASE testdb1;
USE testdb1;
CREATE TABLE table1(username varchar(20), password varchar (20));
4. 修改 master 主机的配置文件( Windows 下为 my.ini )。
[mysqld]
server-id=1
log-bin
binlog-do-db=testdb1
5. 重启 master 主机的 mysql 服务。
6. 查看 master 主机的 server_id。
show variables like 'server_id';
执行结果应该是:
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 1 |
+---------------+-------+
1 row in set (0.00 sec)
7. 查看 master 主机的状态:
show master status;
执行结果应该是:
+------------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------------+----------+--------------+------------------+
| xxxxxx-bin.000002 | 642 | testdb1 | |
+------------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
8. 给 slave 主机增加一个同步数据库。
CREATE DATABASE testdb1;
USE testdb1;
CREATE TABLE table1(username varchar(20), password varchar (20));
9, 修改 slave 主机的配置文件。
[mysql]
server-id=2
master-host=192.168.1.10
master-user=backup
master-password=1234
master-port=3306
master-connect-retry=60
replicate-do-db=testdb1
10. 删除 C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.1\data\master.info 文件,重启 mysql 服务。
11. 查看 slave 主机 id。
show variables like 'server_id';
执行结果应该是:
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 2 |
+---------------+-------+
1 row in set (0.00 sec)
12. 查看 slave 主机状态:
show slave status;
注意查看执行结果中是否有提示 error。
13. 在 master 主机中对数据库 testdb1 进行增、删、该操作,然后到 slave 主机中查看 slave 主机中的数据库是否有相应的变化。
maser: USE testdb1;
INSERT INTO table1(username, password) values('001', '001');
CREATE TABLE table2(nickname varchar(20));
INSERT INTO table2(nickname) values('Jim');
slave: USE testdb1;
SELECT * FROM table1;
SELECT * FROM table2;
执行结果应该分别是:
+--------------+---------------+
| username | password |
+--------------+---------------+
| 001 | 001 |
+--------------+---------------+
+--------------+
| nickname |
+--------------+
| Jim |
+--------------+