Mariadb10 Galera 实验小结

Mariadb10 Galera 实验小结
三台服务器作此实验,信息如下:
IP 机器名称 操作系统版本 数据库版本
192.168.88.11 node1 Centos7.5_64 mariadb10
192.168.88.12 node2 Centos7.5_64 mariadb10
192.168.88.13 node3 Centos7.5_64 mariadb10
一、Mariadb10 Galera 初始化准备
1、初始化环境(三台机器上都操作)
A)安装相关的环境包:yum -y install vim wget lrzsz ntpdate
B)同步时间:ntpdate -u times.aliyun.com
C)修改各自主机名:(在每个机器上设置好)
第一台机器:hostname node1 && echo ‘node1’> /etc/hostname 退出后重新登录就可以了
第二台机器:hostname node2 && echo ‘node2’> /etc/hostname 退出后重新登录就可以了
第三台机器:hostname node3 && echo ‘node3’> /etc/hostname 退出后重新登录就可以了
D)vim /etc/hosts文件,加入以下内容:
192.168.88.11 node1
192.168.88.12 node2
192.168.88.13 node3
E)增加mariadb 10版本源
vim /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.1/centos7-amd64/
gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
pgcheck=0
说明:由于从maradb官方网站下载很慢,此处以国内镜像为源
F)安装MariaDB和Galera
yum -y install MariaDB-server MariaDB-client MariaDB-devel galera
G)MariaDB 10安装后初始化配置
systemctl start mysql
mysql_secure_installation
mysql -u root -p --登录数据后进进行授权
MariaDB [(none)]> GRANT ALL PRIVILEGES ON . TO ‘root‘@‘%‘ IDENTIFIED BY ‘password‘ WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit
授权完成后把数据库服务停掉
systemctl stop mysql
二、在各个结点上进行Cluster的安装配置
A)on node1
编辑/etc/my.conf.d/server.conf
vim /etc/my.conf.d/server.conf 在 [galera]下面加入以下内容
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.88.12,192.168.88.13"
wsrep_node_name=node1
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
wsrep_cluster_name="MariaDB_Cluster"
wsrep_node_address=192.168.88.11
wsrep_sst_method=rsync
wsrep_slave_threads=1
innodb_flush_log_at_trx_commit=2
innodb_buffer_pool_size=1024M
wsrep_sst_auth=root:password
B)on node2
编辑/etc/my.conf.d/server.conf
vim /etc/my.conf.d/server.conf 在 [galera]下面加入以下内容
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.88.11,192.168.88.13"
wsrep_node_name=node2
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
wsrep_cluster_name="MariaDB_Cluster"
wsrep_node_address=192.168.88.12
wsrep_sst_method=rsync
wsrep_slave_threads=1
innodb_flush_log_at_trx_commit=2
innodb_buffer_pool_size=1024M
wsrep_sst_auth=root:password
C)on node3
编辑/etc/my.conf.d/server.conf
vim /etc/my.conf.d/server.conf 在 [galera]下面加入以下内容
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.88.11,192.168.88.12"
wsrep_node_name=node3
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
wsrep_cluster_name="MariaDB_Cluster"
wsrep_node_address=192.168.88.13
wsrep_sst_method=rsync
wsrep_slave_threads=1
innodb_flush_log_at_trx_commit=2
innodb_buffer_pool_size=1024M
wsrep_sst_auth=root:password
三、在各个结点上启动Cluster
A)在node1上启动Cluster: /usr/sbin/mysqld --wsrep-new-cluster --user=root
B)在node2上启动Cluster: /etc/init.d/mysql start
B)在node3上启动Cluster: /etc/init.d/mysql start
四、在各个结点上登录Cluster进行验证
任意结点登录数据库,得到以下结果说明Cluster成功

五、问题搜集
遇见的问题1: 备点加入集群一直失败
原因:在生产环境中必须打开防火墙,但是我只开放了 4567 和 针对指定ip开放3306 端口,导致加入集群失败,需要开放 3306, 4444, 4567, 4568 四个端口才可以正常启动
遇见的问题2 :遇到以下提示
2019-02-20 13:59:56 140697295214848 [ERROR] WSREP: It may not be safe to bootstrap the cluster from this node. It was not the last one to leave the cluster and may not contain all the updates. To force cluster bootstrap with this node, edit the grastate.dat file manually and set safe_to_bootstrap to 1 .
2019-02-20 13:59:56 140697295214848 [ERROR] WSREP: wsrep::connect(gcomm://192.168.8811,192.168.88.13) failed: 7
2019-02-20 3:59:56 140697295214848 [ERROR] Aborting
解决方案: 按照建议方式修改 vi /var/lib/mysql/grastate.dat
safe_to_bootstrap: 1
可以正常启动。
六、优缺点:引用自http://blog.sina.com.cn/s/blog_548c8a830102vrgw.htm0l
下篇文章写MySQL使用ProxySQL实现读写分离,以上是在项目文档基础上的个人总结,都是直接可以上手用的哈,当然IP地址全部更换为内网IP。

原文地址:https://blog.51cto.com/450955/2353245

时间: 2024-08-25 03:33:16

Mariadb10 Galera 实验小结的相关文章

{实验小结七}Mysql的一些优化措施

分析查询语句 1)explain [extended] select select_options 2)describe(可以简写为desc) select select_options 查看表的信息[show create table 表名] 什么时候索引没用 1)用like查询且%在开头 2)多列索引直接用第二个字段来查询,索引不起作用 例如:create index index_id_price on fruits(f_id,f_price); explain select * from

【实验小结六】mysql日志的故事

打开二进制日志(二进制日志内容:更改数据库的操作) 在/etc/mysql/my.cnf中 将log_bin这一行的注释去掉就开启了后面的是保存的路径 下面的expire_logs_days是过多久,Mysql自动删除二进制日志 max_binlog_size为最大二进制日志大小 注意重启mysql后刚刚的修改才生效 shell>sudo service mysql stop shell>sudo service mysql start 然后登入mysql 每次登陆后都会生成二进制日志 我的二

(实验小结)主从配置不同步的解决(小白踩雷点)

我是小白,今天刚刚配置好主从机,我觉得我主从机配置好了,因为主从机配置好的标准是这样的: 主机:10.140.133.47 从机:10.210.139.77 在主机上: 证明配置从机的这条语句成功. 在从机上我进行了相应的操作配置好主机之后,我执行了start slave 验证一下是否配置成功: 我在主机上对数据库进行一些操作然后看此时的结果: mysql> show slave status\G *************************** 1. row **************

Java第三次实验要求

实验三 类与对象(一) 一. 实验目的 1. 掌握类与对象的基本概念: 2. 掌握类的声明.创建与使用方法: 3. 掌握类的构造方法的定义与使用方法 4. 掌握类的成员变量.成员方法的定义与使用方法: 5. 理解类变量.类方法与实例变量.实例方法的区别: 6. 理解Java中方法重载的实现方式. 二. 实验要求 1. 根据实验步骤中提出的要求,使用记事本编写相应的Java程序: 2. 使用JDK中提供的javac以及java命令编译.运行自己所编写的Java程序: 3. 根据编译与运行过程中所获

编译原理 实验3 语法分析

语法分析 一. 实验目的 算术表达式的文法可以是(你可以根据需要适当改变): E→E+E|E-E|E*E|E/E|(E)|i 根据算符优先分析法,将表达式进行语法分析,判断一个表达式是否正确. 二. 实验环境 操作系统:window xp 编写环境:visual c++ 编写语言:c语言 三. 实验内容 程序输入/输出示例: 如参考C语言的运算符.输入如下表达式(以分号为结束)和输出结果: (1)10; 输出:正确 (2)1+2; 输出:正确 (3)(1+2)/3+4-(5+6/7); 输出:正

编译原理 实验2 DFA的运行

DFA的运行 一. 实验目的 1.理解有穷自动机的作用: 2.利用状态图和状态表表示有穷自动机: 3.以程序实现有穷自动机的运行过程; 4.利用状态表和有穷自动机的运行原理编制程序,使得程序能够识别一个输入串是否为一个有效的符号串.具体可以选择下面之一:无符号定点实数,无符号正偶数,自然数,整数,十六进制数,或其他自己定义的符号串. 二. 实验环境 操作系统:window xp 编写环境:visual c++ 编写语言:c语言 三. 实验内容 1.简单介绍你所设计的有穷自动机.(要求必须完成无符

实验四+016+兰东华

一.实验目的 1) 学习QTP工具的使用 2)了解黑盒自动化测试 二.实验要求 (1)对被测程序进行黑盒测试用例设计 (2)对QTP的飞机订票系统的任一界面或控件实现自动化测试.(测试的具体自选) (3)写出该程序的缺陷. 三.实验内容 1.对QTP的样例小程序飞机订票系统,实现自动化测试.(学号被3整除,测3a;余1,测3b:余2,测4a) 2.要求: 1)写出飞机订票系统的被测需求. 自行选择需要测试的部分,根据自己的能力,可大,可小. 描述,被测程序,与被测部分的功能. 2)设计测试用例.

Java第一次实验要求

Java语言程序设计第一次实验要求 实验一 简单Java程序设计 一.实验目的 1. 熟悉Java开发及运行环境: 2. 掌握Java程序开发的基本步骤: 3. 了解Java程序开发中的常见错误及其解决办法. 二.实验要求 1. 使用记事本编写所给的Java程序: 2. 使用JDK中提供的javac编译程序: 3. 根据编译与运行过程中所获得的错误信息修改程序直至获得正确的结果: 4. 采用Java语言编写一个简单的应用程序. 三.实验步骤 1. Java开发环境的配置 (1)在命令行下运行ja

c++重载运算符实验定义分数类实现分数间四则运算

实验二           自定义类型的运算 [实验目的] 理解运算符函数与运算符重载方法: 掌握运算符重载为友元函数: [实验内容] 题目: 在C++中,分数不是预先定义的,建立一个分数类,使之具有以下功能:能防止分母为0.当分数不是最简形式时进行约分及分母为负数.用重载运算符完成加法.减法.乘法.除法等四则运算. 源程序代码: #include<iostream> #include<cstdlib> using namespace std; int gcd(int m,int