千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:郑州千锋IT培训  >  行业资讯  >  郑州云计算基础知识学习:MySQL之Galera集群部署

郑州云计算基础知识学习:MySQL之Galera集群部署

来源:千锋教育
发布人:Yolanda
时间: 2020-02-29 10:43:00

  MySQL数据库是云计算人才必须要掌握的技能之一,其中涵盖很多的知识点,有基本的数据库操作,还有数据库集群部署等高阶知识。有很多同学想知道Galera集群部署怎么做,接下来千锋郑州云计算培训老师就给大家解答一下。

维度


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

  主要功能

  同步复制

  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;

  了解更多云计算学习技能,你可以关注“千锋郑州校区”微信公众号,定期发布技术热点和行业趋势分析。你也可以来千锋郑州云计算培训班跟大牛讲师面对面学习交流,更快更好的掌握高端技能!

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

大数据培训要花多少钱

2023-04-12

计算机前端怎么学

2023-04-12

大数据都需要学什么?难不难

2023-03-30

最新文章NEW

javaee是前端还是后端,都学什么

2023-03-24

it前端是做什么的

2023-03-24

大数据培训要多久?你了解多少

2023-03-09

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>