原理:多个msyql/mariadb之间可以实时同步,任意节点的操作可以立即同步到其他节点,底层采用galera插件同步,类似rsync,上层mysql相对于galera是透明的,可以实现多节点同时读写(无法实现读写分离)。

NOTE:普通的msyql/mariadb无法集成galera,要想使用galera必须编译msyql/mariadb让其拥有调用galera 的能力,或者可以直接下载支持galera的mysql/mariadb。

环境:

1.采用三节点

节点一:192.168.85.136

节点二:192.168.85.137

节点三:192.168.85.138

2.系统平台:

Red Hat Enterprise Linux Server release 6.7 (Santiago)

3.关闭防火墙(所有节点执行)

/etc/rc.d/init.d/iptables stop

setenforce 0

4.设置galera.repo

http://releases.galeracluster.com//mysql-wsrep-5.5/redhat/6/x86_64/      #mysql-server软件包
http://releases.galeracluster.com//galera-3/redhat/6/x86_64/                   #galera组件

将上面地址加入yum repo

5.查看libgalera_smm.so路径(mysql 会调用此模块像其他节点同步数据)

rpm -ql galera-3-25.3.25-2.el6.x86_64 | grep smm.so

/usr/lib64/galera-3/libgalera_smm.so

6.配置my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock wsrep_node_name=node1
wsrep_provider=/usr/lib64/galera-/libgalera_smm.so
wsrep_sst_method=rsync
port=
user=mysql
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=
innodb_locks_unsafe_for_binlog=
innodb_flush_log_at_trx_commit=
innodb_doublewrite=
innodb_file_per_table=
binlog_format=ROW
log-bin=mysql-bin
server-id=
relay-log=mysql-relay-bin
log-slave-updates=
symbolic-links= [mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

三个节点全部同步此配置文件,需注意:

wsrep_node_name=node1     #配置成节点node名称
wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so    #就是刚才我们查出的模块路径

7.启动mysql:
node1:service mysql start --wsrep_cluster_address=gcomm://
node2:service mysql start --wsrep_cluster_address=gcomm://192.168.85.136
node3:service mysql start --wsrep_cluster_address=gcomm://192.168.85.137 8.验证:
在node1上创建数据库:


在其余node查看:

node2:

node3:

接下来可以将集群信息写入到my.cnf
在每个节点中my.cnf 文件mysqld段中加入:
wsrep_cluster_address="gcomm://192.168.85.136,192.168.85.137,192.168.85.138" ################################################################################
排错:
  启动mysql出现without updating PID file (/var/lib/mysql/node1.pid):
解决:
  注释my.cnf中
wsrep_cluster_address="gcomm://192.168.85.136,192.168.85.137,192.168.85.138"
启动第一个node:
  /etc/rc.d/init.d/mysql start --wsrep_cluster_address=gcomm://
启动第二个node:
/etc/rc.d/init.d/mysql start --wsrep_cluster_address=gcomm://192.168.85.136
启动第三个node:
  /etc/rc.d/init.d/mysql start --wsrep_cluster_address=gcomm://192.168.85.136
全部启动完成后将
wsrep_cluster_address="gcomm://192.168.85.136,192.168.85.137,192.168.85.138" 加入到每个节点中 NOTE:导致上述问题的原因未知,也未去深入研究,只要三个节点不同时启动就不会有问题,如果三个节点同时启动就会出现上述问题(重启三节点任意一个节点不会出现任何问题)。
 

mysql 多主的更多相关文章

  1. mySQL 中主键值自动增加

    转  http://stevenjohn.iteye.com/blog/976397 MySql 主键自动增长 博客分类: DataBase MySQLSQL  创建数据库,创建表. mysql> ...

  2. MySQL双主(主主)架构方案

    在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果是双主或者多主,就会增加mysql入 ...

  3. 分布式数据存储 - MySQL双主复制

    上篇文章<分布式数据存储 - MySQL主从复制>,我们说到MySQL主从复制很好的保障了从库,读的高可用性.so,问题来了: 1.针对主库,写的高可用性又是如何做到高可用性? 2.如果需 ...

  4. MySQL双主配置

    MySQL双主配置 准备环境:服务器操作系统为RHEL6.4 x86_64,为最小化安装.主机A和主机B均关闭防火墙和SELINUX ,IP地址分别为192.168.131.129和192.168.1 ...

  5. Mysql增加主键或者更改表的列为主键的sql语句

                                                                                                        ...

  6. Keepalived+MySQL双主

    一.Keepalived+MySQL Replication的应用场景 MySQL的高可用方案有cluster,MMM,MHA等,这些高可用方案都要三台服务器以上,成本有点高,今天介绍一个低成本高可用 ...

  7. keepalived+mysql双主复制高可用方案

    MySQL双主复制,即互为Master-Slave(只有一个Master提供写操作),可以实现数据库服务器的热备,但是一个Master宕机后不能实现动态切换.而Keepalived通过虚拟IP,实现了 ...

  8. MySQL集群(四)之keepalived实现mysql双主高可用

    前面大家介绍了主从.主主复制以及他们的中间件mysql-proxy的使用,这一篇给大家介绍的是keepalived的搭建与使用! 一.keepalived简介 1.1.keepalived介绍 Kee ...

  9. 配置mysql为主主复制步骤

    mysql版本:mysql-5.6.24-solaris10-sparc-64bit.tar 操作系统:solaris 11g u10 操作用户:使用非root进行操作安装,a路服务器ip地址为192 ...

  10. MYSQL 双主配置

    MYSQL1. 版本号:5.7.243. 部署方式:双主部署,两台机器即是主又是备 ,双向拷贝,可以同时写入.4. 安装部署路径: a) /home/softb) 配置路径 /etc/my.cnfc) ...

随机推荐

  1. Docker容器服务发现方案

    一.      目的 在服务在容器中部署时,外部调用服务需要知道服务接口ip及端口号,这样导致部署时需要配置,从而增加部署的困难.本文档主要介绍如何使用ningx反向代理和consul进行自动化服务发 ...

  2. SVN——Couldn't perform atomic initialization

    前言   今天早上刚刚打开我的电脑,就被李总他们告知不能正确用SVN从服务器上下载代码了,然后看问题吧.问题其实也是本文的标题,并不难解决,写下来留个记录,顺便也算是一种分享.问题截图如下:    造 ...

  3. 数据可视化:CSV格式,JSON格式

    下载CSV格式数据,进行可视化 csv.reader()创建一个与文件有关联的阅读器(reader)对象,reader处理文件中的第一行数据,并将每一项数据都存储在列表中 head_row = nex ...

  4. fedora添加ntfs文件系统支持

    ntfs支持(安装后不能打开,重启) 如果没有换源先看一下换源. 查找库中是否有ntfs-3g. [root@bogon zhujikuan]# yum search ntfs 上次元数据过期检查:0 ...

  5. 基于CoreText的基础排版引擎之不带图片的排版引擎

    - (void)drawRect:(CGRect)rect { [super drawRect:rect]; //步骤一:得到当前绘制画布上下文,用于后续将内容绘制在画布上 CGContextRef ...

  6. 手机上的m3u8视频(缓存)怎么转成MP4?

    一.下载M3u8合并APK,自定义扫描手机中的m3u8文件目录.选择导出的目录,可以多个同时进行m3u8的合并任务. 合并后的文件可以完整播放,但是视频时间只有前十来秒,进度无法拖动. 二.将合并好的 ...

  7. UG/NX 8.0安装方法(图文详解)

    UG8.0,自从被西门子收购后改名为NX,也称NX8.0,作为一款非常优秀三维模具设计软件.他可以针对用户的虚拟产品设计和工艺设计的需求,提供经过实践验证的解决方案.其以全面的设计概念.良好的界面受到 ...

  8. salt-api安装与配置

    一,安装部分[root@LCB-U-syng01 ~]#wget https://pypi.python.org/packages/source/p/pip/pip-1.5.6.tar.gz#md5= ...

  9. MySQL的用户的创建以及远程登录配置

    最近工作中使用HIve工具,因此搭建了一个Hive的测试环境.通常我们都将Hive的元数据信息存储在外界的MySQL中,因此需要安装并配置MySQL数据库.接下来将讲解MySQL的安装以及配置过程. ...

  10. LabelImg 图像图像标注工具

    https://github.com/tzutalin/labelImg windos版本请不要把存放在中文目录下,否则打不开.