MySQL Master/Slave Master/Master 机制

Windows MySQL5.5 实现 主从数据同步。

  现有两台mysql服务器IP分别是:

  192.168.0.2 

  192.168.0.3

  先把0.2这台服务器当做Master,0.3服务器当做Slave

  修改0.2服务器上的my.ini 文件,在mysqld下面加上如下配置:  

#服务器 ID 号
server-id=2
#启用二进制文件 log-bin=mysql-bin # 这里有3种格式
# binlog_format=statement      将主库输入的SQL语句,直接写入二进制文件中 
# binlog_format=row                将主库修改的行写入二进制文件中
# binlog_format=mixed             以上二种的混合模式
binlog_format=mixed
#日志文件需要记录的库
binlog
-do-db=test #不需要的库
binlog
-ignore-db=mysql
 #需要同步的数据库
 replicate-do-db=test
 #不同步的数据库
 replicate-ignore-db=mysql

保存然后重启。

进入mysql>

mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      107 | test         | mysql            |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

File是二进制数据文件,Position 是二进制文件当前位置。

服务器0.3配置也相同。

在0.3服务器上,进入mysql>

  

mysql> change master to master_host='192.168.0.2,master_user='repl',master_password='123456',master_connect_retry=60,master_log_file='mysql-bin.000001',master_log_pos=0;

 master_log_file  是Master服务器的File ,master_log_pos 是要从什么位置开始同步,不能大于Master服务器上的Position值。

然后输入

mysql> slave start;
Query OK, 0 rows affected (0.00 sec)

mysql> show slave status\G;

找到

 Slave_IO_Running: Yes
Slave_SQL_Running: Yes

这两项都yes才启动完成。

现在可以测试 0.2服务器上修改数据,然后看看0.3服务器上是不是同步了。

下面配置0.2服务器为Slave 步骤相同。

如果有一台服务器宕机了,那么那台服务器重启后要停掉Slave,然后在重启Slave。

 

 

posted @ 2012-12-22 16:36  为啥  Views(1356)  Comments(0Edit  收藏  举报