加入收藏 | 设为首页 | 会员中心 | 我要投稿 济宁站长网 (https://www.0537zz.cn/)- 行业智能、边缘计算、专有云、AI硬件、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql 多主

发布时间:2022-08-10 09:49:24 所属栏目:MySql教程 来源:互联网
导读:原理:多个msyql/mariadb之间可以实时同步,任意节点的操作可以立即同步到其他节点,底层采用galera插件同步,类似rsync,上层mysql相对于galera是透明的,可以实现多节点同时读写(无法实现读写分离)。 NOTE:普通的msyql/mariadb无法集成galera,要想使用g
  原理:多个msyql/mariadb之间可以实时同步,任意节点的操作可以立即同步到其他节点,底层采用galera插件同步,类似rsync,上层mysql相对于galera是透明的,可以实现多节点同时读写(无法实现读写分离)。
 
  NOTE:普通的msyql/mariadb无法集成galera,要想使用galera必须编译msyql/mariadb让其拥有调用galera 的能力,或者可以直接下载支持galera的mysql/mariadb。
 
  环境:
 
  1.采用三节点
 
     节点一:192.168.85.136
 
     节点二:192.168.85.137
 
     节点三:192.168.85.138
 
  2.系统平台:
 
  Red Hat Enterprise Linux Server release 6.7 (Santiago)
 
  3.关闭防火墙(所有节点执行)
 
  /etc/rc.d/init.d/iptables stop
 
  setenforce 0
 
  4.设置galera.repo
 
  http://releases.galeracluster.com//mysql-wsrep-5.5/redhat/6/x86_64/      #mysql-server软件包
  http://releases.galeracluster.com//galera-3/redhat/6/x86_64/                   #galera组件
 
  将上面地址加入yum repo
 
  5.查看libgalera_smm.so路径(mysql 会调用此模块像其他节点同步数据)
 
  rpm -ql galera-3-25.3.25-2.el6.x86_64 | grep smm.so
 
   /usr/lib64/galera-3/libgalera_smm.so
 
  6.配置my.cnf
 
  复制代码
  [mysqld]
  datadir=/var/lib/mysql
  socket=/var/lib/mysql/mysql.sock
 
  wsrep_node_name=node1
  wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so
  wsrep_sst_method=rsync
  port=3306
  user=mysql
  default_storage_engine=InnoDB
  innodb_autoinc_lock_mode=2
  innodb_locks_unsafe_for_binlog=1
  innodb_flush_log_at_trx_commit=0
  innodb_doublewrite=0
  innodb_file_per_table=1
  binlog_format=ROW
  log-bin=mysql-bin
  server-id=101
  relay-log=mysql-relay-bin
  log-slave-updates=1
  symbolic-links=0
 
  [mysqld_safe]
  log-error=/var/log/mysqld.log
  pid-file=/var/run/mysqld/mysqld.pid
  复制代码
  三个节点全部同步此配置文件,需注意:
 
  wsrep_node_name=node1     #配置成节点node名称
  wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so    #就是刚才我们查出的模块路径
 
 
  7.启动mysql:
  node1:service mysql start --wsrep_cluster_address=gcomm://
  node2:service mysql start --wsrep_cluster_address=gcomm://192.168.85.136
  node3:service mysql start --wsrep_cluster_address=gcomm://192.168.85.137
 
  8.验证:
  在node1上创建数据库:
 
 
   
 
  在其余node查看:
 
  node2:
 
  node3:
 
 
 
  接下来可以将集群信息写入到my.cnf
  在每个节点中my.cnf 文件mysqld段中加入:
  wsrep_cluster_address="gcomm://192.168.85.136,192.168.85.137,192.168.85.138"
 
  ################################################################################
  排错:
    启动mysql出现without updating PID file (/var/lib/mysql/node1.pid):
  解决:
    注释my.cnf中 wsrep_cluster_address="gcomm://192.168.85.136,192.168.85.137,192.168.85.138"
  启动第一个node:
    /etc/rc.d/init.d/mysql start --wsrep_cluster_address=gcomm://
  启动第二个node:
     /etc/rc.d/init.d/mysql start --wsrep_cluster_address=gcomm://192.168.85.136
  启动第三个node:
    /etc/rc.d/init.d/mysql start --wsrep_cluster_address=gcomm://192.168.85.136
  全部启动完成后将 wsrep_cluster_address="gcomm://192.168.85.136,192.168.85.137,192.168.85.138" 加入到每个节点中
 

(编辑:济宁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读