mysql 数据库同步

来源:互联网 发布:网络创业项目策划书 编辑:程序博客网 时间:2024/05/20 21:18

         参考文章 http://blog.csdn.net/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            |

+--------------+