在linux系统下搭建mysql主主复制集群的具体操作

在配置前需要两个装有ssh的可以互通的两个linux系统,笔者这里使用的是虚拟机下的两个linux系统——乌班图16.04,简单的构建一个两个节点的主主复制的mysql集群。

1.先在1号主节点上来修改1号的配置
sudo vi /etc/mysql/mysql/mysql.conf.d/mysqld.cnf(这里看自己系统mysql配置文件在哪里,我的配置情况是mysql5.7在乌班图16.04的配置过程)找到[mysqld.cnf],在这里增加如下配置,我是在40行后开始配置的。

1号主节点——

     server-id = 101(设置id)
     log-bin = mysql1-bin(开启日志并命名)
     relay-log = mysql1-relay(开启中继日志并命名)
     skip-name-resolve = 0
     auto_increment_increment = 2(防止主键冲突设置自增)
     auto_increment_offset = 1(每次增加一)

修改后保存退出重启服务,在乌班图16.04下的的命令是这样,按照你的linux系统重启服务。 sudo service mysql restart(重启服务后配置文件才能生效)

2.然后在2号主节点上来修改2号的配置
sudo vi /etc/mysql/mysql/mysql.conf.d/mysqld.cnf(这里看自己电脑的mysql配置文件在哪里,我的配置情况是mysql5.7在乌班图16.04的配置过程)
找到[mysqld],在这里增加如下配置,我是在40行后开始配置的。这里的操作步骤同1类似.

2号主节点——

     server-id=102(设置id,不能和1号节点名冲突)
     log-bin =mysql2-bin(开启日志并命名,不能冲突)
     relay-log=mysql2-relay(开启中继日志并命名,不能冲突)
     skip-name-resolve = 0
     auto_increment_increment = 2(防止主键冲突设置自增)
     auto_increment_offset = 2(每次增加2)

修改后保存退出重启服务,在乌班图16.04下的的命令是这样,按照你的linux系统重启服务。 sudo service mysql restart(重启服务后配置文件才能生效)
3.在两个节点上都进入mysql开始下面步骤的配置

  1. 命令mysql -u root -p后进入mysql。

  2. show slave status\G查看之前是否建立过主从连接,如果有的话,就先对两个节点(1)reset master (2)reset slave(如果没办法reset slave的话可以先stop slave后在reset slave)

  3. .在1号节点建立授权用户给2号节点使用grant replication slave ,replication client on . to ‘repl’@’%’ identified by ‘repl’;

  4. 在一号节点上show master status\G,查看file和position.笔者的File:mysql1-bin.000001, Position:154

  5. 然后去2号节点上去设置值

       change master to 
       master_host='172.110.23.110',(这里的ip是一号节点的ip地址,如果不知道的话可以去ifconfig操作在系统中查看)
       master_port=3306,(这里是mysql数据库的端口号,一般默认是3306.如果你没有改动过可以就是3306)
       master_user='repl',(账号)
       master_password='repl',(密码)
       master_log_file='mysql1-bin.000001',(刚才查看的file)
       master_log_pos=154;(刚才查看的Position) 
    
  6. 在2号节点上show master status \G,查看file和position.笔者的File:mysql2-bin.000001 Position:154

  7. 然后去1号节点上去设置值

  8.    change master to 
       master_host='172.110.23.139',(这里的ip是一号节点的ip地址,如果不知道的话可以去ifconfig操作在系统中查看)
       master_port=3306,(这里是mysql数据库的端口号,一般默认是3306.如果你没有改动过可以就是3306)
       master_user='repl',(账号)
       master_password='repl',(密码)
       master_log_file='mysql2-bin.000001',(刚才查看的file)
       master_log_pos=154;(刚才查看的Position)  
    
  9. 在2号节点建立授权用户给1号节点使用grant replication slave,replication client on . to ‘repl’@’%’ identified by ‘repl’;

  10. 在1号和2号节点上都执行start slave;然后都show slave status \G查看是否 连接成功,连接成功的标志就是两边节点的Slave_IO_State都显示的是 Slave_IO_State:Waiting for master to send event。

这样的话正常情况下就建立好了主主复制结构。

【郑重申明】:由于本文是笔者在学习阶段所写技术能力有限,仅供参考。如果那里有不对或者有问题,可以联系笔者修改。或者想和我讨论一起学习的,我们可以一起探讨。如果产生问题没有连接成功, 可以耐心查看报错,慢慢调整修改,有可能粗心导致步骤错误。

你可能感兴趣的:(大数据/云计算)