galera mysql ubuntu_Ubuntu14.04安装Mysql Galera Cluster
查看更多关于我的博客,点击这里
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相关推荐
- Ubuntu 18.04 安装 MySQL 5.7【解决普通用户登录、密码修改、远程访问等问题】
之前在Ubuntu 16.04安装 MySQL的时候很顺利,这次在 Ubuntu 18.04 中安装 MySQL 5.7.23 中,遇到一些坑,折腾了好久,这里做一个记录. 1. 安装数据库 # 安装 ...
- Ubuntu 18.04 安装 mysql 并且设置远程可登陆连接
Ubuntu18.04 安装MySQL 环境信息: OS:Ubuntu18.04 MySQL: 5.7.25-0ubuntu0.18.04.2 1.安装MySQL 在 Ubuntu 18.04 中 ...
- 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 ...
- Ubuntu 16.04安装MySQL(5.7.18)
Ubuntu 16.04安装MySQL(5.7.18) 此篇为http://www.cnblogs.com/EasonJim/p/7139275.html的分支页. 安装MySQL前需要做如下了解: ...
- ubuntu 16.04安装mysql_Ubuntu 16.04 安装mysql 5.7.16
遇到问题(一般都会自己换 源,,保证自己的是正确,不然好多装不上) mysql 5.7开启远程 一个朋友在使用ubuntu-server 16.04安装mysql,设置远程访问的时候出现了问题,请我帮 ...
- Ubuntu16.04安装MySQL笔记
Ubuntu16.04安装MySQL 下载文件:https://dev.mysql.com/downloads/repo/apt/ 通过winscp(安装及使用) 将此文件上传到服务器root目录 利 ...
- Ubuntu20.04安装MySQL及配置MySQL workbench
文章目录 前言 一.MySQL安装与配置 1. 安装MySQL 2. 配置MySQL 二.配置MySQL远程访问 三.安装配置MySQL workbench 1. 安装MySQL workbench ...
- ubuntu 20.04安装mysql 5.7
ubuntu 20.04系统自带源直接安装是MySQL 8.0,我要安装MySQL 5.7的版本的所以先进行换源 在操作前先备份原来的sorce文件 sudo cp /etc/apt/sources. ...
- Ubuntu18.04 安装MySQL、Navicat
一.MySQL 1.安装MySQL 安装命令 sudo apt-get install mysql-serversudo apt-get install mysql-clientsudo apt-ge ...
最新文章
- cocos2dx3.8 android打包脚本编写
- 无锡市中级人民法院数据复制灾备软件采购
- Python ML环境搭建与学习资料推荐
- sqli-labs(40)
- Angular应用的部署方式
- Asp.Net生命周期的详解
- 滚动条插件nicescroll的使用
- js 操作 iframe
- 华为 HarmonyOS2.0(鸿蒙OS) 开发者beta公测招募的报名流程
- 【C#学习笔记】函数调用
- OpenCV threshold 二值化
- 麦咭萌app送智伴机器人_国内儿童陪伴机器人品牌盘点
- 潘多拉路由器固件备份
- 惠普打印机换硒鼓图解_惠普激光打印机硒鼓安装方法(图文)
- 测试方案/测试计划/测试报告
- 十年PHP架构师的成长之路,程序员必备
- 求当前时间的三种方法(Java)
- Oracle Enterprise Linux(OEL) 操作系统下载步骤及版本区别
- 解决Ubuntu 20.04无法播放网页音视频的问题
- 55-经典问题分析四