当前位置: 首页 / 技术干货 / 正文
好程序员云计算教程:MySQL之Galera集群部署

2020-03-02

好程序员 云计算教程 云计算

  好程序员云计算教程MySQLGalera集群部署,MySQL数据库是云计算人才必须要掌握的技能之一,其中涵盖很多的知识点,有基本的数据库操作,还有数据库集群部署等高阶知识。有很多同学想知道Galera集群部署怎么做,接下来好程序员云计算教程就给大家分享一下。

云计算1

  Galera是一个MySQL(也支持MariaDBPercona)的同步多主集群软件。

  主要功能

  同步复制

  Active-active的多主拓扑结构

  真正的multi-master,即所有节点可以同时读写数据库

  自动成员资格控制,失败节点从群集中删除

  新节点加入数据自动复制

  真正的并行复制,行级

  项目,4台虚拟机

  一定要固定ip地址

  准备环境:

  主机解析:

  [root@mysql-1 ~]# cat /etc/hosts

  127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

  ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

  192.168.62.131 galera1

  192.168.62.231 galera2

  192.168.62.168 galera3

  192.168.62.166 galera4

  分别修改主机名称:

  [root@localhost ~] hostnamectl set-hostname mysql-1

  [root@localhost ~] hostnamectl set-hostname mysql-2

  [root@localhost ~] hostnamectl set-hostname mysql-3

  [root@localhost ~] hostnamectl set-hostname mysql-4

  所有机器关闭防火墙和selinux:

  # setenforce 0 && systemctl stop firewalld

  时间同步:

  所有机器修改时区:

  # ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

  准备时间服务器:

  galera1上操作

  [root@mysql-1 ~]# yum -y install ntp

  [root@mysql-1 ~]# vim /etc/ntp.conf //将下面两行添加进去

  server 127.127.1.0 # local clock

  fudge 127.127.1.0 stratum 10

  [root@mysql-1 ~]# systemctl restart ntpd

  其余3台客户端同步时间:

  [root@galera2 ~]# ntpdate galera1

  下载和安装Galera(每台都需要安装)

  注意:Galera有独立的补丁包,也有在mysql基础上打好补丁的完整包

  我们要下载带wsrep扩展补丁的版本,比如:

  MySQL 5.7.20 extended with wsrep patch version 25.13

  所以:删除原版本mysql:

  [root@mysql-1 yum.repos.d]# yum erase `rpm -qa | grep mysql` -y

  根据官方下载提示找到下载路径,发现下载路径下是已经做好yum源的路径,所以可以直接修改yum配置文件使用yum安装。

  配置yum源:

  [root@mysql-1 yum.repos.d]# yum -y install epel-release

  [root@mysql-1 yum.repos.d]# cat galera.repo

  [galera]

  name=galera

  baseurl=http://releases.galeracluster.com/mysql-wsrep-5.7/centos/7/x86_64/

  enabled=1

  gpgcheck=0

  [root@mysql-1 yum.repos.d]# yum list | grep 'galera'

  galera.x86_64 25.3.12-2.el7 epel

  mysql-wsrep-5.7.x86_64 5.7.20-25.13.el7 galera

  mysql-wsrep-client-5.7.x86_64 5.7.20-25.13.el7 galera

  mysql-wsrep-common-5.7.x86_64 5.7.20-25.13.el7 galera

  mysql-wsrep-devel-5.7.x86_64 5.7.20-25.13.el7 galera

  mysql-wsrep-libs-5.7.x86_64 5.7.20-25.13.el7 galera

  mysql-wsrep-libs-compat-5.7.x86_64 5.7.20-25.13.el7 galera

  mysql-wsrep-server-5.7.x86_64 5.7.20-25.13.el7 galera

  mysql-wsrep-test-5.7.x86_64 5.7.20-25.13.el7 galera

  注意:需要epel源提供galera

  安装:

  [root@mysql-1 yum.repos.d]# yum install mysql-wsrep-5.7.x86_64 galera rsync -y

  4台全部启动:

  [root@mysql-1 ~]# systemctl start mysqld

  [root@mysql-1 ~]# grep password /var/log/mysqld.log

  [root@mysql-1 ~]# mysqladmin -u root -p'xCRk9#mws#.4' password 'Qianfeng123!'

  4台分别创建同步数据的用户

  [root@mysql-1 ~]# mysql -u root -p'Qianfeng123!'

  mysql> grant all on *.* to 'syncuser'@'%' identified by 'Qianfeng123!@';

  mysql> flush privileges;

  配置Galera Replication:

  galera1配置:主配置文件my.cnf追加如下内容

  server-id=1

  binlog_format=row

  innodb_file_per_table=1

  innodb_autoinc_lock_mode=2

  wsrep_on=ON

  wsrep_provider=/usr/lib64/galera/libgalera_smm.so

  wsrep_cluster_name='galera'

  wsrep_cluster_address='gcomm://'

  wsrep_node_name='galera1'

  wsrep_node_address='192.168.245.133'

  wsrep_sst_auth=syncuser:'Qianfeng123!@'

  wsrep_sst_method=rsync

  galera2配置:主配置文件my.cnf追加如下内容

  server-id=2

  binlog_format=row

  innodb_file_per_table=1

  innodb_autoinc_lock_mode=2

  wsrep_on=ON

  wsrep_provider=/usr/lib64/galera/libgalera_smm.so

  wsrep_cluster_name='galera'

  wsrep_cluster_address='gcomm://galera1,galera3,galera4'

  wsrep_node_name='galera2'

  wsrep_node_address='192.168.245.136'

  wsrep_sst_auth=syncuser:'Qianfeng123!@'

  wsrep_sst_method=rsync

  galera3配置:主配置文件my.cnf追加如下内容

  server-id=3

  binlog_format=row

  innodb_file_per_table=1

  innodb_autoinc_lock_mode=2

  wsrep_on=ON

  wsrep_provider=/usr/lib64/galera/libgalera_smm.so

  wsrep_cluster_name='galera'

  wsrep_cluster_address='gcomm://galera1,galera2,galera4'

  wsrep_node_name='galera3'

  wsrep_node_address='192.168.245.10'

  wsrep_sst_auth=syncuser:'Qianfeng123!@'

  wsrep_sst_method=rsync

  galera4配置:主配置文件my.cnf追加如下内容

  server-id=4

  binlog_format=row

  innodb_file_per_table=1

  innodb_autoinc_lock_mode=2

  wsrep_on=ON

  wsrep_provider=/usr/lib64/galera/libgalera_smm.so

  wsrep_cluster_name='galera'

  wsrep_cluster_address='gcomm://galera1,galera2,galera3'

  wsrep_node_name='galera4'

  wsrep_node_address='192.168.245.135'

  wsrep_sst_auth=syncuser:'Qianfeng123!@'

  wsrep_sst_method=rsync

  重启服务:每台机器

  [root@mysql-1 ~]# systemctl restart mysqld

  查看端口:galera端口4567 mysql端口3306

  [root@mysql-1 ~]# ss -auntpl | grep -E '3306|4567'

  测试:

  在任何一台机器上写入数据,其他机器全部会同步

  [root@mysql-1 ~]# mysql -u root -p'Qianfeng123!'

  mysql> create database youngfit;

  [root@mysql-2 ~]# mysql -u root -p'Qianfeng123!'

  [root@mysql-3 ~]# mysql -u root -p'Qianfeng123!'

  mysql> show databases;

  [root@mysql-4 ~]# mysql -u root -p'Qianfeng123!'

  mysql> show databases;

  了解更多云计算学习技能,你可以关注“好程序员”微信公众号,定期发布技术热点和行业趋势分析。你也可以来好程序员云计算培训班跟大牛讲师面对面学习交流,更快更好的掌握高端技能,同时好程序员准备了大量云计算教程供大家学习。

好程序员公众号

  • · 剖析行业发展趋势
  • · 汇聚企业项目源码

好程序员开班动态

More+
  • HTML5大前端 <高端班>

    开班时间:2021-04-12(深圳)

    开班盛况

    开班时间:2021-05-17(北京)

    开班盛况
  • 大数据+人工智能 <高端班>

    开班时间:2021-03-22(杭州)

    开班盛况

    开班时间:2021-04-26(北京)

    开班盛况
  • JavaEE分布式开发 <高端班>

    开班时间:2021-05-10(北京)

    开班盛况

    开班时间:2021-02-22(北京)

    开班盛况
  • Python人工智能+数据分析 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2020-09-21(上海)

    开班盛况
  • 云计算开发 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2019-07-22(北京)

    开班盛况
IT培训IT培训
在线咨询
IT培训IT培训
试听
IT培训IT培训
入学教程
IT培训IT培训
立即报名
IT培训

Copyright 2011-2023 北京千锋互联科技有限公司 .All Right 京ICP备12003911号-5 京公网安备 11010802035720号