mysql 主主 配置以及注意事项

1303阅读 0评论2011-02-20 ubuntuer
分类:Mysql/postgreSQL

1.两台安装好mysql的服务器:

A:192.168.1.6             (mysql的用户名:root;密码:gaso123)

B:192.168.1.8              (mysql的用户名:root;密码:gaso123)

A和B互为主服务器互相备份

2.A上以B为主服务器:

mysql>change master to master_host='192.168.1.8',master_port=3306,master_user='root',master_password='gaso123';

A上授权B可以操作A这个从属服务器:

mysql>grant replication slave on *.* to  identified by 'gaso123';

刷新授权:

mysql>flush privileges;

B上以A为主服务器:

mysql>change master to master_host='192.168.1.6',master_port=3306,master_user='root',master_password='gaso123';

B上授权给A,让A有权操作B这个从属服务器

mysql>grant replication slave on *.* to  identified by 'gaso123';

刷新授权:

mysql>flush privileges;

3.以上就配好了mysql的master-master模式服务器,重启两mysql后再进入,修改/etc/my.cnf添加以下几个选项

server-id=2

log-bin=log

binlog-do-db=repl

注意server-id的唯一性



检查主服务器状态:

mysql>show master status;

+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      854 |              |                  | 
+------------------+----------+--------------+------------------+

出现类似这个表格就说明主服务器已经连上。

检查从服务器状态:

mysql>show slave status;

| Slave_IO_Running | Slave_SQL_Running |
| Yes              | Yes               |

出现的表中这两项均为yes就说明和从服务器通讯没问题。

mysql>show master status\G;

mysql>show slave status\G;

以上这两种方法查看的状态更直观一些。

4.以上的第3项几条保证后就可以随意在A上或者B上建立数据库或者建立表格,然后就会在另一台服务器上自动生成相同的库或者表。

5.该方法最适合于需要新建的mysql主从服务器,一般需要仔细配置一次性成功,否则可能比较难以查找问题所在。


主主拓扑结构是有局限性的!

允许同时写入是危险的,两个服务器上按照不同的顺序进行的更新也能导致数据不同步,例如:

假设有个表只有一行和一列,并且值为1

A:

  update tes1 set col=col+1;

B:

  update test2 set col=col*2;

结果一个机器上是3, 一个上是4,就导致了不同步~~~~

这个时候就要用到mysql-master-master了

上一篇:mysqlhotcopy 热备工具体验与总结
下一篇:Mysql批量插入LOAD DATA INFILE