部署MySQL Galera集群的具体操作方法

  

下文给大家带来关于部署MySQL Galera集群的具体操作方法,感兴趣的话就一起来看看这篇文章吧,相信看完部署MySQL Galera集群的具体操作方法对大家多少有点帮助吧。

0。功能简介

特性

    <李>基于行复制的完全并行同步复制李 <李>实时多主架构,任意节点可读写李 <>李无延迟复制,事务零丢失,可靠健壮的读写体验。 <李>自动化节点关系控制:节点故障自动摘除,节点加入自动协调李 <>李接近原生的MySQL数据库连接的体验李

原理简析
当一个事务在当前写入的节点提交后,通过wsrep API(写设置复制API)将这个事务变成写集(写)广播到同集群的其他节点中,其他节点收到写集事务后,对这个事务进行可行性检查,并返回结果给wsrep API。
若大多数节点都预估自己可以成功执行这个事务,则wsrep API会做出仲裁,通知所有可以成功执行这个事务的节点提交这个事务,并将事务成功提交的消息返回给客户端,同时根据需要剔除没有成功执行事务的节点

galera共享库
galera本身是作为一个插件式的共享库文件,MySQL通过调用galera写集复制API挂钩,获得galera集群特性。

galera共享库组成部分
galera库是一个提供准备,复制,应用写集事务功能的协议栈,其重要组成部分为:

wsrep API:写集复制功能组件,负责提供关系型数据库管理与复制服务,定义接口
wsrep钩子:在数据库引擎中的集成写集组件
Gelera提供者:将共享库转化为wsrep API
认证层:保护写集并完整性,验证写集完整性
复制:管理复制协议,提供完整的指令系统
GCS支架:为集群组通信提供插件架构

1。环境准备

MySQL版本:5.6.41
192.168.33.14 node4
192.168.33.15 node5
192.168.33.16 node6

修改主机文件

 vim/etc/hosts
  192.168.33.14 node4
  192.168.33.15 node5
  192.168.33.16 node6 

2。安装带wsrep的mysql版本

 #分别在3台服务器上安装mysql
  #安装基本工具
  百胜是安装lsof rsync wget
  
  #解压
  wget http://releases.galeracluster.com/mysql - wsrep 5.6 -/- binary/mysql wsrep 5.6.41 - 25.23 - linux - x86_64.tar.gz
  tar xf mysql - wsrep 5.6.41 - 25.23 - linux - x86_64.tar.gz
  mv mysql - wsrep 5.6.41 - 25.23 - linux - x86_64/usr/local/mysql
  
  #创建用户及用户组
  groupadd - g 306 mysql
  useradd - u 306 - g 306 mysql
  乔恩- r mysql: mysql/usr/local/mysql
  
  #安装依赖
  百胜是安装perl-Module-Install
  cd/usr/local/mysql
  。/脚本/mysql_install_db——用户=mysql——basedir=/usr/地方/mysql——datadir=/home/mysql/mysqldata
  
  #配置开机启动
  cp支持文件/mysql。服务器/etc/init.d/mysqld
  chmod + x/etc/init.d/mysqld
  如果grep & # 39; ^ basedir=$ & # 39;/etc/init.d/mysqld祝辞/dev/null;然后
  ,,sed - i & # 39; s # ^ basedir=$ # basedir=/usr/地方/mysql # & # 39;/etc/init.d/mysqld
  fi
  如果grep & # 39; ^ datadir=$ & # 39;/etc/init.d/mysqld祝辞/dev/null;然后
  ,,sed - i & # 39; s # ^ datadir=$ # datadir=/home/mysql/mysqldata # & # 39;/etc/init.d/mysqld
  fi
  chkconfig——添加mysqld
  chkconfig mysqld上
  服务mysqld开始
  
  #添加环境变量
  猫在/etc/profile.d/mysql.sh & lt; & lt; EOF
  导出路径=/usr/地方/mysql/bin:美元的道路
  EOF
  源/etc/profile
  
  #初始化配置
  mysql_secure_installation & lt; & lt; EOF
  
  y
  oeasy808
  oeasy808
  y
  n
  y
  y
  EOF
  
  #配置完成之后,停止mysql服务
  服务mysqld停止

3。安装galera

 #分别在3台服务器上安装galera
  wget http://releases.galeracluster.com/galera 3/centos/7/x86_64/galera el7.x86_64.rpm——3 - 25.3.24 - 2.
  百胜是安装galera - 3 - 25.3.24 - 2. - el7.x86_64.rpm 

4。配置集群

 ip_addr=$ (ip addr显示美元(ip路由默认| | grep awk & # 39;{打印5美元}& # 39;)| grep inet | grep阿宝& # 39;(\ d + \) {3} \ d + & # 39;| awk & # 39;{打印1美元;退出}& # 39;)
  mysql_id=$ (echo $ ip_addr | awk - f。& # 39;{打印$ NF} & # 39;)
  猫在/etc/my.cnf & lt; & lt; EOF
  (mysqld)
  skip-name-resolve=1
  binlog_format=行
  default-storage-engine=innodb
  innodb_autoinc_lock_mode=2
  innodb_locks_unsafe_for_binlog=1
  query_cache_size=0
  query_cache_type=0
  bind_address=$ {ip_addr}
  服务器id=$ {mysql_id}
  
  wsrep_on=对
  wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so
  wsrep_cluster_name=癵alera_cluster"
  wsrep_cluster_address=癵comm://192.168.33.14,192.168.33.15,192.168.33.16"#全部集群节点
  wsrep_node_name=cluster1 #节点名称,唯一
  wsrep_slave_threads=1
  wsrep_certify_nonPK=1
  wsrep_max_ws_rows=131072
  wsrep_max_ws_size=1073741824
  wsrep_debug=0
  wsrep_convert_LOCK_to_trx=0
  wsrep_retry_autocommit=1
  wsrep_auto_increment_control=1
  wsrep_drupal_282555_workaround=0
  wsrep_causal_reads=0
  # wsrep_notify_cmd=wsrep_sst_method=rsync
  wsrep_sst_auth=根:oeasy808 #安装mysql时配置的密码
  EOF 

部署MySQL Galera集群的具体操作方法