0

0

实战MySQL集群,试用CentOS 6下的MariaDB-Galera集成版_MySQL

php中文网

php中文网

发布时间:2016-06-01 13:27:23

|

1226人浏览过

|

来源于php中文网

原创

MariaDBCentOSMysql集群

bitsCN.com

  说起mysql的集群估计很多人会首先想起mysql自带的replication或者mysql-mmm。mysql-mmm其实也是基于mysql自带的replication的,不过封装的更好用一些,但是配置起来还是比较麻烦,而且对于动态增减master节点可以说是无能为力的。

  偶然的情况下了解到有一个基于mysql的集群galera,除了只支持InnoDB以外,基本就没什么缺点了。大家看看官方是怎么说的:

FeaturesMySQL/Galera is synchronous multi-master cluster for MySQL/InnoDB database, having features like:    Synchronous replication    Active-active multi-master topology    Read and write to any cluster node    Automatic membership control, failed nodes drop from the cluster    Automatic node joining    True parallel replication, on row level    Direct client connections, native MySQL look & feelBenefitsThese features yield un-seen benefits for a DBMS clustering solution:    No slave lag    No lost transactions    Both read and write scalability    Smaller client latencies

  废话少说,马上开始动手测试,测试用的OS是64位的CentOS 6。首先,添加MariaDB的软件仓库,创建文件“/etc/yum.repos.d/MariaDB.repo”,内容

# MariaDB 5.5 CentOS repository list - created 2013-11-05 06:30 UTC# http://mariadb.org/mariadb/repositories/[mariadb]name = MariaDBbaseurl = http://yum.mariadb.org/5.5/centos6-amd64gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1

  然后,安装MariaDB-Galera集成版

# yum -y install MariaDB-Galera-server.x86_64 MariaDB-client.x86_64 galera.x86_64

 # cp /usr/share/mysql/wsrep.cnf /etc/my.cnf.d/

  Galera默认试用4567端口同步数据,需要修改防火墙,这里为了方便直接把防火墙给关闭了

# /etc/init.d/iptables stop

  MariaDB-Galera貌似没有给你提供配套的selinux配置,为了方便,直接把selinux给禁止了

# setenforce 0

  既然是集群,当然不能只有一台机器

机器a 192.168.56.103
机器b 192.168.56.104
机器c 192.168.56.105

  修改机器a的“/etc/my.cnf.d/wsrep.cnf”,改动内容

# Full path to wsrep provider library or 'none'wsrep_provider=/usr/lib64/galera/libgalera_smm.so# Group communication system handlewsrep_cluster_address="gcomm://"# Address which donor should send State Snapshot to.# Should be the address of THIS node. DON'T SET IT TO DONOR ADDRESS!!!# (SST method dependent. Defaults to the first IP of the first interface)wsrep_sst_receive_address=192.168.56.103

  因为机器a是第一个节点,wsrep_cluster_address直接填"gcomm://"就可以了。如果是要加入到某个集群,那就填集群里面随便一个节点的ip就可以,例如"gcomm://192.168.56.103:4567"。wsrep_sst_receive_address是本机用来接收同步数据的ip,默认是机器网络配置里面找到的第一个ip,如果机器有多个ip的话最好指定一下,例如“192.168.56.103”。启动mysql数据库服务

# /etc/init.d/mysql start

  现在要把机器b加入到集群,同样修改配置文件“/etc/my.cnf.d/wsrep.cnf”,改动内容

Pebblely
Pebblely

AI产品图精美背景添加

下载
# Full path to wsrep provider library or 'none'wsrep_provider=/usr/lib64/galera/libgalera_smm.so# Group communication system handlewsrep_cluster_address="gcomm://192.168.56.103:4567"# Address which donor should send State Snapshot to.# Should be the address of THIS node. DON'T SET IT TO DONOR ADDRESS!!!# (SST method dependent. Defaults to the first IP of the first interface)wsrep_sst_receive_address=192.168.56.104

  启动机器b的mysql服务。

  到这里集群就搭建完毕了,现在开始正式测试集群。首先,链接机器a的mysql服务,创建一个数据库和一张表,表里面有一个让mysql-mmm比较麻烦和头疼的AUTO_INCREMENT字段,顺便添加乐一个用来访问这个数据库的用户

[root@centos6 ~]# mysql -u rootWelcome to the MariaDB monitor.  Commands end with ; or /g.Your MariaDB connection id is 3Server version: 5.5.33a-MariaDB MariaDB Server, wsrep_23.7.6.rXXXXCopyright (c) 2000, 2013, Oracle, Monty Program Ab and others.Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.MariaDB [(none)]> create database asdf;Query OK, 1 row affected (0.03 sec)MariaDB [(none)]> grant all on asdf.* to 'aauu'@'localhost' identified by '123456';Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> use asdf;Database changedMariaDB [asdf]> create table aatt (aa int primary key auto_increment);Query OK, 0 rows affected (0.14 sec)MariaDB [asdf]> insert into aatt values (null);Query OK, 1 row affected (0.01 sec)MariaDB [asdf]> insert into aatt values (null);Query OK, 1 row affected (0.00 sec)MariaDB [asdf]> select * from aatt;+----+| aa |+----+|  2 ||  4 |+----+2 rows in set (0.00 sec)

  auto_increment的步进自动变成2了,是不是很智能?现在我们去到机器b,用新建的用户名登录mysql服务,执行类似的操作

[root@centos6 ~]# mysql -u aauu -pEnter password: Welcome to the MariaDB monitor.  Commands end with ; or /g.Your MariaDB connection id is 4Server version: 5.5.33a-MariaDB MariaDB Server, wsrep_23.7.6.rXXXXCopyright (c) 2000, 2013, Oracle, Monty Program Ab and others.Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.MariaDB [(none)]> use asdf;Database changedMariaDB [asdf]> insert into aatt values (null);Query OK, 1 row affected (0.01 sec)MariaDB [asdf]> insert into aatt values (null);Query OK, 1 row affected (0.04 sec)MariaDB [asdf]> select * from aatt;+----+| aa |+----+|  2 ||  4 ||  5 ||  7 |+----+4 rows in set (0.00 sec)

  看到没有?刚才插入的数据都在这个就没什么值得说的,厉害的是机器a上新建的用户在这里可以用!现在我们来动态把机器c加入到集群里面去

# Full path to wsrep provider library or 'none'wsrep_provider=/usr/lib64/galera/libgalera_smm.so# # Group communication system handlewsrep_cluster_address="gcomm://192.168.56.104:4567"# # Address which donor should send State Snapshot to.# # Should be the address of THIS node. DON'T SET IT TO DONOR ADDRESS!!!# # (SST method dependent. Defaults to the first IP of the first interface)wsrep_sst_receive_address=192.168.56.105

  之前说过的,加入到集群里面随便一个节点的ip都可以。启动机器c的mysql服务,然后执行类似操作

[root@centos6 ~]# mysql -u rootWelcome to the MariaDB monitor.  Commands end with ; or /g.Your MariaDB connection id is 3Server version: 5.5.33a-MariaDB MariaDB Server, wsrep_23.7.6.rXXXXCopyright (c) 2000, 2013, Oracle, Monty Program Ab and others.Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.MariaDB [(none)]> use asdf;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedMariaDB [asdf]> insert into aatt values (null);Query OK, 1 row affected (0.00 sec)MariaDB [asdf]> insert into aatt values (null);Query OK, 1 row affected (0.00 sec)MariaDB [asdf]> select * from aatt;+----+| aa |+----+|  2 ||  4 ||  5 ||  7 ||  9 || 12 |+----+6 rows in set (0.00 sec)

  auto_increment的步进自动变成3了,看到没有?

  这里我只是简单的列举了Galera的一个使用场景,还有很多它先进的地方这里没有提到,它大家可以上它的官方网站看看。

  参考网址:

  1. http://www.codership.com/
  2. https://launchpad.net/wsrep
  3. http://blog.sina.com.cn/s/blog_704836f40101lixp.html

 

bitsCN.com

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
1688阿里巴巴货源平台入口与批发采购指南
1688阿里巴巴货源平台入口与批发采购指南

本专题整理了1688阿里巴巴批发进货平台的最新入口地址与在线采购指南,帮助用户快速找到官方网站入口,了解如何进行批发采购、货源选择以及厂家直销等功能,提升采购效率与平台使用体验。

21

2026.02.06

快手网页版入口与电脑端使用指南 快手官方短视频观看入口
快手网页版入口与电脑端使用指南 快手官方短视频观看入口

本专题汇总了快手网页版的最新入口地址和电脑版使用方法,详细提供快手官网直接访问链接、网页端操作教程,以及如何无需下载安装直接观看短视频的方式,帮助用户轻松浏览和观看快手短视频内容。

0

2026.02.06

C# 多线程与异步编程
C# 多线程与异步编程

本专题深入讲解 C# 中多线程与异步编程的核心概念与实战技巧,包括线程池管理、Task 类的使用、async/await 异步编程模式、并发控制与线程同步、死锁与竞态条件的解决方案。通过实际项目,帮助开发者掌握 如何在 C# 中构建高并发、低延迟的异步系统,提升应用性能和响应速度。

0

2026.02.06

Python 微服务架构与 FastAPI 框架
Python 微服务架构与 FastAPI 框架

本专题系统讲解 Python 微服务架构设计与 FastAPI 框架应用,涵盖 FastAPI 的快速开发、路由与依赖注入、数据模型验证、API 文档自动生成、OAuth2 与 JWT 身份验证、异步支持、部署与扩展等。通过实际案例,帮助学习者掌握 使用 FastAPI 构建高效、可扩展的微服务应用,提高服务响应速度与系统可维护性。

3

2026.02.06

JavaScript 异步编程与事件驱动架构
JavaScript 异步编程与事件驱动架构

本专题深入讲解 JavaScript 异步编程与事件驱动架构,涵盖 Promise、async/await、事件循环机制、回调函数、任务队列与微任务队列、以及如何设计高效的异步应用架构。通过多个实际示例,帮助开发者掌握 如何处理复杂异步操作,并利用事件驱动设计模式构建高效、响应式应用。

2

2026.02.06

java连接字符串方法汇总
java连接字符串方法汇总

本专题整合了java连接字符串教程合集,阅读专题下面的文章了解更多详细操作。

24

2026.02.05

java中fail含义
java中fail含义

本专题整合了java中fail的含义、作用相关内容,阅读专题下面的文章了解更多详细内容。

28

2026.02.05

控制反转和依赖注入区别
控制反转和依赖注入区别

本专题整合了控制反转和依赖注入区别、解释、实现方法相关内容。阅读专题下面的文章了解更多详细教程。

19

2026.02.05

钉钉脑图插图教程合集
钉钉脑图插图教程合集

本专题整合了钉钉脑图怎么插入图片、钉钉脑图怎么用相关教程,阅读专题下面的文章了解更多详细内容。

53

2026.02.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 2.1万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 823人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号