查看更多关于我的博客,点击这里

Galera简单介绍

Galera Cluster号称是世界最先进的开源数据库集群

其主要的特点有:

- 多主服务模式

- 多个服务能同时被读写,不像Fabric那样,某些服务只能做备份用

- 同步复制

- 无延迟复制,不会产生数据丢失

- 热备用

- 当某服务器宕机后,其他备用服务器会自动接管,不会产生宕机时间

- 自动扩展节点

- 新增服务时,不需要手工复制数据库到新的节点

- 只支持InnoDB引擎

- 这点和其他的数据库所使用的引擎不一样

- 对应用程序透明

- 应用程序不需要修改,对外部使用而言就好像在使用单机的MySQL一样

传统的基于MySQL Replication的架构图为:

这种方式是通过启动新的线程从主服务器上拷贝更新日志,然后传送到备份服务器上执行,这种方式存在事务丢失或者同步不及时的风险。Fabric和传统的主从备份复制都是这种方式。

而对于Galera,客户端通过Galera Load Balancer访问数据库,提交的每个事务都会通过wsrep API 在所有服务器中执行,要不所有服务器都执行成功,要不就所有都回滚,保证所有服务的数据一致性,而且所有服务器同步实时更新。

安装准备

首先,不论是在云服务器、物理机还是虚拟机上,至少需要3台主机(我们将这三台主机称为“Nodes”),对于每一个”Node”,硬件最低配置要求为:

- 1GHz单核CPU

- 512M的内存

- 100Mbps的网络连接

- 三台主机IP为:

- Node1: 192.168.1.174

- Node2: 192.168.1.175

- Node3: 192.168.1.176

其次要禁用SElinux、防火墙配置、禁用AppArmor,不过这些在Ubuntu14.04下都是不用配置的,所以就不详细说明配置步骤。

开始安装

下面就是最实用的安装过程,亲测有效!

1.安装需要的源

apt-get install software-properties-common

apt-key adv --keyserver keyserver.ubuntu.com --recv BC19DDBA

然后创建创建一个文件,/etc/apt/sources.list.d/galera.list,galera.list里面的内容为:

deb http://releases.galeracluster.com/ubuntu trusty main

接下来就更新一下:

apt-get update

源配置好了之后,接下来就该安装文件了,执行:

apt-get install galera-3 galera-arbitrator-3 mysql-wsrep-5.6

安装完成之后,在每一个节点上启动Mysql:

service mysql start

然后,验证节点之间是否能互相ping通:

root@node1:~#ping 192.168.1.175

root@node1:~#ping 192.168.1.176

root@node2:~#ping 192.168.1.174

root@node2:~#ping 192.168.1.176

root@node3:~#ping 192.168.1.174

root@node3:~#ping 192.168.1.175

安装好了,那么下面要来修改Mysql的配置文件了,打开/etc/mysql/my.cnf,修改bind-address 127.0.0.1为:

bind-address = 0.0.0.0

表示任何主机可以访问。重启Mysql:

service mysql restart

接下来,试着在任何一个节点登录其他节点,比如Node1上执行:

mysql -h 192.168.1.175 -u root -p

此时会让你输入Mysql密码,说明Node2上的Mysql服务器是在监听的,但此时输入密码是登录不成功的,后面会解决这个!

接下来,我们还要对Mysql配置文件进一步配置:

在 Node1 上的/etc/mysql/my.cnf里面的[mysql]下面添加上:

binlog_format=ROW

default-storage-engine=innodb

innodb_autoinc_lock_mode=2

wsrep_provider=/usr/lib/libgalera_smm.so

wsrep_provider_options="gcache.size=300M; gcache.page_size=1G"

wsrep_cluster_name="galeracluster"

wsrep_cluster_address="gcomm://"

wsrep_sst_method=rsync

wsrep_sst_auth=wsrep:password

在 Node2 上的/etc/mysql/my.cnf里面的[mysql]下面添加上:

binlog_format=ROW

default-storage-engine=innodb

innodb_autoinc_lock_mode=2

wsrep_provider=/usr/lib/libgalera_smm.so

wsrep_provider_options="gcache.size=300M; gcache.page_size=1G"

wsrep_cluster_name="galeracluster"

wsrep_cluster_address="gcomm://192.168.1.174"

wsrep_sst_method=rsync

wsrep_sst_auth=wsrep:password

在 Node3 上的/etc/mysql/my.cnf里面的[mysql]下面添加上:

binlog_format=ROW

default-storage-engine=innodb

innodb_autoinc_lock_mode=2

wsrep_provider=/usr/lib/libgalera_smm.so

wsrep_provider_options="gcache.size=300M; gcache.page_size=1G"

wsrep_cluster_name="galeracluster"

wsrep_cluster_address="gcomm://192.168.1.174"

wsrep_sst_method=rsync

wsrep_sst_auth=wsrep:password

以上三个节点的配置注意以下几点:

1. default_storage_engine这一行是必须的,因为Galera只能复制innodb的数据库

2. wsrep_cluster_name这一行指定了集群的名称,集群中的每个节点上都必须设置为一样

3. 作为集群中第一个启动的节点Node1,wsrep_cluster_address必须设置为空,即"gcomm://",其他节点则要指定

4. 最后一行的用户名和密码在所有节点上都必须一样(此处用户名为wsrep,后面马上会创建该用户,密码为password)

下面,在每个节点上创建用户及实现远程数据库可以登录(解决前文说到的无法访问):

mysql –u root –p

CREATE USER ‘wsrep’@’%’ IDENTIFIED BY ‘password’;

CREATE USER ‘root’@’%’ IDENTIFIED BY ‘password’;

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

重启数据库,然后可以试试前面提到的从Node1登录到Node2是否能成功!

接下来,Ubuntu有一个特别的用户叫debian-sys-maint会来维持Mysql的运行任务,由于数据库的复制,这个维护的运行只会在第一个节点成功进行,在其他节点上则会失败,所以要将启动节点上的/etc/mysql/debian.cnf文件拷贝到其他节点上,执行如下命令:

scp /etc/mysql/debian.cnf root@192.168.1.175:/etc/mysql/

scp /etc/mysql/debian.cnf root@192.168.1.176:/etc/mysql/

执行过程中可能会失败,这个问题是因为在/etc/mysql/my.cnf文件中有一行要改为:

PermitRootLogin yes

这样就会成功了!

当以上步骤都完成了之后,可以准备开始启动集群了!

启动集群

在Node1上将mysql服务先停掉然后重启,注意一定要在前面提到的wsrep_cluster_address="gcomm://"的节点上(本例中就是Node1)执行最开始的启动程序:

service mysql stop

service mysql start --wsrep-new-cluster

在其他节点上执行:

service mysql restart

验证是否成功

查看数据表

登录Node1:

mysql -u root -p

Enter password:

mysql> SHOW STATUS LIKE 'wsrep%';

重点关注的是下面这几行:

wsrep_ready | ON

如果状态是 ON,那么就要看:

wsrep_cluster_size | 3

如果是3,那么是成功的,否则是不成功的!

数据库复制测试

在Node1上创建一个表:

CREATE database test;

立刻到Node2和Node3节点上使用 show databases; 查看是否也有了test这个数据库,如果有则成功!

galera mysql ubuntu_Ubuntu14.04安装Mysql Galera Cluster相关推荐

  1. Ubuntu 18.04 安装 MySQL 5.7【解决普通用户登录、密码修改、远程访问等问题】

    之前在Ubuntu 16.04安装 MySQL的时候很顺利,这次在 Ubuntu 18.04 中安装 MySQL 5.7.23 中,遇到一些坑,折腾了好久,这里做一个记录. 1. 安装数据库 # 安装 ...

  2. Ubuntu 18.04 安装 mysql 并且设置远程可登陆连接

    Ubuntu18.04 安装MySQL 环境信息:  OS:Ubuntu18.04  MySQL: 5.7.25-0ubuntu0.18.04.2 1.安装MySQL 在 Ubuntu 18.04 中 ...

  3. django本地安装mysql_Ununtu 15.04 安装MySql(Django连接Mysql)

    本文介绍Ubuntu 15.04下安装MySQL ubuntu 15.04安装mysql django项目连接mysql 一.安装数据库 1.sudo apt-get install mysql-se ...

  4. Ubuntu 16.04安装MySQL(5.7.18)

    Ubuntu 16.04安装MySQL(5.7.18) 此篇为http://www.cnblogs.com/EasonJim/p/7139275.html的分支页. 安装MySQL前需要做如下了解: ...

  5. ubuntu 16.04安装mysql_Ubuntu 16.04 安装mysql 5.7.16

    遇到问题(一般都会自己换 源,,保证自己的是正确,不然好多装不上) mysql 5.7开启远程 一个朋友在使用ubuntu-server 16.04安装mysql,设置远程访问的时候出现了问题,请我帮 ...

  6. Ubuntu16.04安装MySQL笔记

    Ubuntu16.04安装MySQL 下载文件:https://dev.mysql.com/downloads/repo/apt/ 通过winscp(安装及使用) 将此文件上传到服务器root目录 利 ...

  7. Ubuntu20.04安装MySQL及配置MySQL workbench

    文章目录 前言 一.MySQL安装与配置 1. 安装MySQL 2. 配置MySQL 二.配置MySQL远程访问 三.安装配置MySQL workbench 1. 安装MySQL workbench ...

  8. ubuntu 20.04安装mysql 5.7

    ubuntu 20.04系统自带源直接安装是MySQL 8.0,我要安装MySQL 5.7的版本的所以先进行换源 在操作前先备份原来的sorce文件 sudo cp /etc/apt/sources. ...

  9. Ubuntu18.04 安装MySQL、Navicat

    一.MySQL 1.安装MySQL 安装命令 sudo apt-get install mysql-serversudo apt-get install mysql-clientsudo apt-ge ...

最新文章

  1. cocos2dx3.8 android打包脚本编写
  2. 无锡市中级人民法院数据复制灾备软件采购
  3. Python ML环境搭建与学习资料推荐
  4. sqli-labs(40)
  5. Angular应用的部署方式
  6. Asp.Net生命周期的详解
  7. 滚动条插件nicescroll的使用
  8. js 操作 iframe
  9. 华为 HarmonyOS2.0(鸿蒙OS) 开发者beta公测招募的报名流程
  10. 【C#学习笔记】函数调用
  11. OpenCV threshold 二值化
  12. 麦咭萌app送智伴机器人_国内儿童陪伴机器人品牌盘点
  13. 潘多拉路由器固件备份
  14. 惠普打印机换硒鼓图解_惠普激光打印机硒鼓安装方法(图文)
  15. 测试方案/测试计划/测试报告
  16. 十年PHP架构师的成长之路,程序员必备
  17. 求当前时间的三种方法(Java)
  18. Oracle Enterprise Linux(OEL) 操作系统下载步骤及版本区别
  19. 解决Ubuntu 20.04无法播放网页音视频的问题
  20. 55-经典问题分析四

热门文章

  1. Thumbnails压缩图片到指定大小
  2. Flume+kafka+flink+es 构建大数据实时处理
  3. linux 添加 PATH 环境变量
  4. No qualifying bean of type ‘XXX‘ available
  5. linux f中文版下载,Linux上的杀毒软件F-PROT及下载
  6. 最小二乘法的原理及实现
  7. docker一键部署php开发环境
  8. 现实生活中的奢侈品如何走进数字时尚?
  9. 移动电子商务项目简介
  10. 【五一创作】某头条参数破解并实现界面化搭建