Chinaunix首页 | 论坛 | 博客
  • 博客访问: 973207
  • 博文数量: 120
  • 博客积分: 6454
  • 博客等级: 准将
  • 技术积分: 1739
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-28 17:45
文章分类

全部博文(120)

文章存档

2014年(1)

2013年(1)

2012年(11)

2011年(16)

2010年(6)

2009年(11)

2008年(30)

2007年(44)

分类: Mysql/postgreSQL

2011-11-23 15:25:44

1. 环境:CentOS5.5 x84,MySQL5.5.15

2. 两台机器:
master1:192.168.5.143
master2:192.168.0.149

3. 单独编译安装MySQL,并测试连接成功。

4. 两台机器上都建立用户,并赋予复制权限:
master1:
  1. mysql> CREATE USER 'test12'@'%';
  2. mysql> GRANT REPLICATION SLAVE ON *.* TO 'test12'@'%' IDENTIFIED BY 'test12';
master2:
  1. mysql> CREATE USER 'test34'@'192.168.5.143';
  2. mysql> GRANT REPLICATION SLAVE ON *.* TO 'test34'@'192.168.5.143' IDENTIFIED BY 'test34';
host是随便设置的,只要是对方可以连接上即可。权限方面,只需要有REPLICATION SLAVE权限即可。

5. master1上的my.cnf添加:
  1. [mysqld]
  2. # for repl
  3. server-id = 1
  4. log-bin = mysql-bin
  5. auto-increment-increment= 2 # 应设为整个结构中服务器的总数
  6. auto-increment-offset = 1 # 设定数据库中自动增长的起点,避免两台服务器数据同步时出现主键冲突
6. master2上的my.cnf添加:
  1. [mysqld]
  2. # for repl
  3. server-id = 2
  4. log-bin = mysql-bin
  5. auto-increment-increment= 2
  6. auto-increment-offset = 1
7. 重启两台机器上的服务。

8. master1上指定master2为主:
  1. mysql> CHANGE MASTER TO
  2.    -> MASTER_HOST='192.168.0.149',
  3.    -> MASTER_USER='test34',
  4.    -> MASTER_PASSWORD='test34';
  5. Query OK, 0 rows affected (0.19 sec)

  6. mysql> START SLAVE;
  7. Query OK, 0 rows affected (0.00 sec)
9. master2上指定master1为主:
  1. mysql> CHANGE MASTER TO
  2.    -> MASTER_HOST='192.168.5.143',
  3.    -> MASTER_USER='test12',
  4.    -> MASTER_PASSWORD='test12';
  5. Query OK, 0 rows affected (0.18 sec)

  6. mysql> START SLAVE;
  7. Query OK, 0 rows affected (0.00 sec)
10. 测试
实验1:启动两个服务,在任一mysql上进行操作,在另一mysql上均能体现出来。
实验2:启动两个服务,在master1上通过tpcc工具添加20个warehouse,数据占用硬盘约1.9G,在两台机器上计算count(*),数据一致。
实验3:启动master1,在master1上通过tpcc工具添加一个warehouse,启动master2,同步一段时间后,计算count(*),结果一致。

ps,MySQL的主主复制实际上就是双向的主从复制。



阅读(5581) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

ming62442015-03-25 13:42:42

简单明了 ~赞