首页 > 代码库 > mysql master-master-slave实验
mysql master-master-slave实验
实现结构:
前提条件,这是全新的安装mysql服务器,已经在运行的mysql需要先做备件,并还原到另外的机子上。
master A:192.168.168.128
master B:192.168.168.129
slave 192.168.168.130
在三台机子上分别安装mysql
[root@yaho ~]# yum install -y mysql mysql-server mysql-dev
修改master A和master B还有slave的配置文件。
[root@yaho ~]#vim /etc/my.cnf
master A: 在[mysqld]内添加(修改)
server-id = 128
log-bin = mysql-bin
sync-binlog = 1
auto_increment_offset = 1
auto_increment_increment = 2
server-id = 129
log-bin = mysql-bin
sync-binlog = 1
auto_increment_offset = 2
auto_increment_increment = 2
log-slave-updatesslave: 在[mysqld]内添加(修改)
server-id = 129
3.分别启动3台master的mysql,建立同步用户,并给IP授权,允许远程访问。
[root@yaho ~]#service mysqld start
master A:
mysql> GRANT REPLICATION SLAVE ON *.* TO ‘repl‘@‘192.168.168.129‘ identified by ‘123456‘; #给master B 授权
master B:
mysql>GRANT REPLICATION SLAVE ON *.* TO ‘repl‘@‘192.168.168.128‘ identified by ‘123456‘; #给master A授权
mysql>GRANT REPLICATION SLAVE ON *.* TO ‘repl‘@‘192.168.168.130‘ identified by ‘123456‘; #给slave授权
4.查看master A 和master 的maste 状态信息:
mysql>show master status;
+------------------+----------+
| File | Position |
+------------------+----------+
| mysql-bin.000001 | 106 |
+------------------+----------+
5.连接master,实现主-主-从
master A:
mysql>change master to master_host=‘192.168.168.129‘,master_user=‘repl‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=106;
master B:
mysql>change master to master_host=‘192.168.168.128‘,master_user=‘repl‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=106;
slave:
mysql>change master to master_host=‘192.168.168.129‘,master_user=‘repl‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=106;
6.分别在三台机子上启动slave功能:
mysql>start slave;
mysql>show slave status\G;
如果下面两项都为YES,意味着成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
测试--略:
只需要在随便在哪个master创建一个数据库,然后show一下,如果另外两个mysql都有这个这人数据库,则意味成功。
注意:如果mysqld启动不起来,可以先注释 log-slave-updates 这行,当主从建立起来后再去掉注释。
mysql master-master-slave实验