今天学习了一下 windows下的mysql主从配置,这里对我的配置做一个简单的总结。

配置:

1、环境

A计算机192.168.18.8 Windows Xp  Mysql 5.5

B计算机192.168.18.6 Windows Xp  Mysql 5.5

这里最好是两台服务器的版本都一样,如果不一样请参见官方网站相关资料

http://imysql.cn/docs/MySQL_51_zh/mysql_51.html( mysql中文网)

2、  A的数据库中建立一个备份帐户,命令如下:
GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.*
TO backup@'192.168.18.8'
IDENTIFIED BY ‘123456’;

建立一个帐户backup,并且只能允许从192.168.18.8这个地址上来登陆,密码是123456。、

3、更改密码

   因为mysql版本新密码算法不同,所以进入mysql下,输入:set password for 'backup'@'192.168.18.8'=old_password('123456');

4、  A服务器的配置进行修改,打开mysql/my.ini文件,在[mysqld]下面添加如下内容:
server-id=1
log-bin=c:\log-bin.log

server-id
:为主服务器AID
log-bin
:二进制变更日值

5、  重启A服务器,从现在起,它将把客户堆有关数据库的修改记载到二进制变更日志里去。这个时候在C盘下会生成2个文件log-bin.000001log-bin.index。进入mysql中输入如下代码:

   mysql > SHOW MASTER STATUS;
+---------------+----------+--------------+------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| mysql-bin.003 | 73       |              |                  |
+---------------+----------+--------------+------------------+
 

   记录下结果,以便启动从服务器的时候使用。

6、  B服务器的配置进行修改,打开mysql/my.ini文件,在[mysqld]下面添加如下内容:

   [mysqld]
server-id=2

7、  重启从服务器B。然后再用root账户进入mysql,输入如下代码:

   mysql> CHANGE MASTER TO
          ->     MASTER_HOST='master_host_name',
          ->     MASTER_USER='replication_user_name',
          ->     MASTER_PASSWORD='replication_password',
          ->     MASTER_LOG_FILE='recorded_log_file_name',
         ->     MASTER_LOG_POS=recorded_log_position;

server-id:从服务器BID值。注意不能和主服务器的ID值相同。
master-host
:主服务器的IP地址。
master-user
:从服务器连接主服务器的帐号。
master-password
:从服务器连接主服务器的帐号密码。
replicate-do-db
:告诉主服务器只对指定的数据库进行同步镜像。

recorded_log_file_name = mysql-bin.003

recorded_log_position = 73

8、  测试

更新A服务器中的某个表,B服务器中也会相应的发生改变。这个时候在B上做得操作A中是不会发生任何改变的。