linux下安装MariaDB Galera Cluster

环境:

OS: CentOS 7

DB: mariadb-galera-10.0.31

 

1.安装步骤

1.1 环境部署

节点角色

ip

Host01

192.168.56.11

Host02

192.168.56.12

Host03

192.168.56.13

nginx

192.168.56.13

1.2 MariaDB Galera Cluster下载

下载介质:

mariadb-galera-10.0.31-linux-x86_64.tar.gz

galera-25.3.19-1.rhel7.el7.centos.x86_64.rpm

下载地址:

http://mirrors.ctyun.cn/MariaDB/

1.3 建立各主机的等效连接

步骤省略

1.3.1  验证等效连接

1.3.1.1 名称节点到各节点的等效性

[root@host01~]# ssh host02;host03 date

Last login:Mon Apr 18 11:27:01 2016 from host01.com

[root@host02~]# ssh host01;host03 date

Last login:Mon Apr 18 10:48:31 2016 from host03.com

[root@host03~]# ssh host01;host02 date

Last login:Mon Apr 18 14:52:30 2016 from host02.com

1.4 关闭防火墙

[root@host01~]# systemctl stop firewalld.service

[root@host01~]# systemctl disable firewalld.service

[root@host01~]# firewall-cmd --state

[root@host02~]# systemctl stop firewalld.service

[root@host02~]# systemctl disable firewalld.service

[root@host02~]# firewall-cmd –state

[root@host03~]# systemctl stop firewalld.service

[root@host03~]# systemctl disable firewalld.service

[root@host03~]# firewall-cmd --state

1.5 在各节点上安装MariaDB-Galera

1.5.1    创建用户和用户组

创建目录

[root@host01opt]# mkdir -p /opt/mariadb-galera

[root@host01opt]# groupadd maria

[root@host01opt]# useradd -g maria -d /opt/mariadb-galera maria

[root@host01opt]# passwd maria

##我这里设置密码跟用户名一样也是maria

1.5.2    安装相应的软件包

 

[root@hxl01conf]# yum install rsync

[root@hxl01conf]# yum install lsof

[root@host01soft]# rpm -ivh galera-25.3.19-1.rhel7.el7.centos.x86_64.rpm

galera-25.3.19-1.rhel7.el7.centos.x86_64.rpm

[root@host01soft]# rpm -ivh galera-25.3.19-1.rhel7.el7.centos.x86_64.rpm

warning:galera-25.3.19-1.rhel7.el7.centos.x86_64.rpm: Header V4 DSA/SHA1 Signature, keyID 1bb943db: NOKEY

error:Failed dependencies:

libboost_program_options.so.1.53.0()(64bit) is needed bygalera-25.3.19-1.rhel7.el7.centos.x86_64

解决办法:

yum install boost-devel.x86_64

[root@host01soft]# rpm -ivh galera-25.3.19-1.rhel7.el7.centos.x86_64.rpm

warning:galera-25.3.19-1.rhel7.el7.centos.x86_64.rpm: Header V4 DSA/SHA1 Signature, keyID 1bb943db: NOKEY

Preparing...                          #################################[100%]

Updating/ installing...

1:galera-25.3.19-1.rhel7.el7.centos#################################[100%]

 

 

 

1.5.3    安装数据库

解压安装包并移动到指定目录

[root@host01soft]# tar -zxvf mariadb-galera-10.0.31-linux-x86_64.tar.gz

[root@host01]#mv mariadb-galera-10.0.31-linux-x86_64 /opt/mariadb-galera/mariadb-galera-10031

创建配置文件目录

mkdir -p/opt/mariadb-galera/mariadb-galera-10031/conf      ##数据库配置文件目录

mkdir -p/opt/mariadb-galera/mariadb-galera-10031/conf/galera ##集群配置文件目录

数据库初始化参数

[root@host01conf]# more my.cnf

[mysqld]

port=3306

server-id=1  ##相应修改节点2和节点3的值分别为 2和3

basedir=/opt/mariadb-galera/mariadb-galera-10031

datadir=/opt/mariadb-galera/mariadb-galera-10031/data

character-set-server=utf8

max_connections= 1500

[client]

port =3306

socket=/opt/mariadb-galera/mariadb-galera-10031/mysql.sock

default-character-set= utf8

[mysqldump]

quick

max_allowed_packet= 16M

[myisamchk]

key_buffer_size= 8M

sort_buffer_size= 8M

read_buffer= 4M

write_buffer= 4M

修改文件目录权限

[root@host01opt]# chown -R maria:maria ./mariadb-galera

[root@host01opt]# pwd

/opt

初始化数据库

[root@host01scripts]#cd /opt/mariadb-galera/mariadb-galera-10031/scripts

[root@host01scripts]#./mysql_install_db --basedir=/opt/mariadb-galera/mariadb-galera-10031--datadir=/opt/mariadb-galera/mariadb-galera-10031/data --user=maria

要是遇到如下错误

/opt/mariadb-galera/mariadb-galera-10031/bin/mysqld:error while loading shared libraries: libaio.so.1: cannot open shared objectfile: No such file or directory

需要安装

yuminstall libaio*

1.5.4     启动数据库

./mysqld_safe--defaults-file=/opt/mariadb-galera/mariadb-galera-10031/conf/my.cnf--user=maria &

1.5.5     初始化root密码

登录数据库

./mysql-h localhost -uroot

删除账号空的记录,并设置root账号登录密码

deletefrom mysql.user where user='';

updatemysql.user set password=PASSWORD('mysql') where user='root';

flushprivileges;

1.5.6     创建集群同步用户

grantall privileges on *.* to sst@'%' identified by 'mysql';

flushprivileges;

1.5.7     配置Galera Cluster参数

先停掉mysql

./mysqladmin-h localhost -uroot -pmysql shutdown

创建集群配置文件

cd/opt/mariadb-galera/mariadb-galera-10031/support-files

cpwsrep.cnf /opt/mariadb-galera/mariadb-galera-10031/conf/galera/

[root@host01galera]# more wsrep.cnf

[mysqld]

wsrep_provider=/usr/lib64/galera/libgalera_smm.so

wsrep_cluster_address="gcomm://192.168.56.11,192.168.56.12,192.168.56.13"

binlog_format=row

default_storage_engine=InnoDB

innodb_autoinc_lock_mode=2

wsrep_cluster_name='hxl_wsrep_cluster'

wsrep_node_address='192.168.56.11'##按照节点2节点3的ip进行修改

wsrep_node_name='hxl01'  ##按照节点2节点3的主机名进行修改

wsrep_sst_method=rsync

wsrep_sst_auth=sst:mysql

修改./conf/my.cnf文件

在my.cnf文件最后面添加

!includedir/opt/mariadb-galera/mariadb-galera-10031/conf/galera/

[root@host01conf]# more my.cnf

[mysqld]

port=3306

server-id=1

basedir=/opt/mariadb-galera/mariadb-galera-10031

datadir=/opt/mariadb-galera/mariadb-galera-10031/data

character-set-server=utf8

max_connections= 1500

[client]

port =3306

socket=/opt/mariadb-galera/mariadb-galera-10031/mysql.sock

default-character-set= utf8

[mysqldump]

quick

max_allowed_packet= 16M

[myisamchk]

key_buffer_size= 8M

sort_buffer_size= 8M

read_buffer= 4M

write_buffer= 4M

!includedir/opt/mariadb-galera/mariadb-galera-10031/conf/galera/

在root账号下添加修改文件,需要想要修改下权限

[root@host02opt]# chown -R maria:maria ./mariadb-galera

1.6 启动第一个节点

./mysqld_safe--defaults-file=/opt/mariadb-galera/mariadb-galera-10031/conf/my.cnf--wsrep-new-cluster --user=maria

每次集群启动的时候需要加上--wsrep-new-cluster选项启动,要启动最后关闭数据库的节点,通过查找每个节点data目录下的grastate.dat文件,查看该文件内容,safe_to_bootstrap值为 1的节点为启动的第一个节点。

1.7 启动第二个节点

./mysqld_safe--defaults-file=/opt/mariadb-galera/mariadb-galera-10031/conf/my.cnf--user=maria

1.8 启动第三个节点

./mysqld_safe--defaults-file=/opt/mariadb-galera/mariadb-galera-10031/conf/my.cnf--user=maria

1.9 添加仲裁节点

# garbd-a gcomm://192.168.56.11 -g hxl_wsrep_cluster –d

1.10 验证

1.10.1 验证wsrep参数

登录任何一个节点查看wsrep参数,主要关注红色部分的参数

[root@hxl03bin]# ./mysql -h localhost -uroot -pmysql

Welcometo the MariaDB monitor.  Commands endwith ; or \g.

YourMariaDB connection id is 4

Serverversion: 10.0.31-MariaDB-wsrep MariaDB Server, wsrep_25.19.rc3fc46e

Copyright(c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB[(none)]> show status like '%wsrep%';

+------------------------------+----------------------------------------------------------+

|Variable_name                | Value                                                   |

+------------------------------+----------------------------------------------------------+

|wsrep_local_state_uuid       |43caaa91-54bf-11e7-9321-c60bd8969b24                     |

|wsrep_protocol_version       | 7                                                       |

|wsrep_last_committed         | 0                                                       |

|wsrep_replicated             | 0                                                       |

|wsrep_replicated_bytes       | 0                                                       |

|wsrep_repl_keys              | 0                                                       |

|wsrep_repl_keys_bytes        | 0                                                       |

|wsrep_repl_data_bytes        | 0                                                        |

|wsrep_repl_other_bytes       | 0                                                       |

|wsrep_received               | 3                                                       |

|wsrep_received_bytes         | 290                                                      |

|wsrep_local_commits          | 0                                                       |

|wsrep_local_cert_failures    | 0                                                       |

|wsrep_local_replays          | 0                                                       |

|wsrep_local_send_queue       | 0                                                       |

|wsrep_local_send_queue_max   | 1                                                       |

| wsrep_local_send_queue_min   | 0                                                       |

|wsrep_local_send_queue_avg   |0.000000                                                |

|wsrep_local_recv_queue       | 0                                                        |

|wsrep_local_recv_queue_max   | 1                                                       |

|wsrep_local_recv_queue_min   | 0                                                       |

|wsrep_local_recv_queue_avg   |0.000000                                                |

|wsrep_local_cached_downto    |18446744073709551615                                     |

|wsrep_flow_control_paused_ns | 0                                                       |

| wsrep_flow_control_paused    | 0.000000                                                |

|wsrep_flow_control_sent      | 0                                                       |

|wsrep_flow_control_recv      | 0                                                        |

|wsrep_cert_deps_distance     |0.000000                                                |

|wsrep_apply_oooe             |0.000000                                                |

|wsrep_apply_oool             |0.000000                                                 |

|wsrep_apply_window           |0.000000                                                |

|wsrep_commit_oooe            |0.000000                                                |

|wsrep_commit_oool            | 0.000000                                                |

|wsrep_commit_window          |0.000000                                                |

|wsrep_local_state            | 4                                                       |

|wsrep_local_state_comment    |Synced                                                  |

|wsrep_cert_index_size        | 0                                                       |

|wsrep_causal_reads           | 0                                                       |

|wsrep_cert_interval          |0.000000                                                |

|wsrep_incoming_addresses     |192.168.56.11:3306,192.168.56.13:3306,192.168.56.12:3306 |

|wsrep_desync_count           | 0                                                        |

|wsrep_evs_delayed            |                                                         |

|wsrep_evs_evict_list         |                                                         |

|wsrep_evs_repl_latency       |0/0/0/0/0                                                |

|wsrep_evs_state              |OPERATIONAL                                              |

|wsrep_gcomm_uuid             |75ce45ee-54c3-11e7-9d93-4ef9d5520bd4                     |

|wsrep_cluster_conf_id        | 9                                                       |

|wsrep_cluster_size           | 3                                                        |

|wsrep_cluster_state_uuid     |43caaa91-54bf-11e7-9321-c60bd8969b24                     |

| wsrep_cluster_status         | Primary                                                 |

|wsrep_connected              | ON                                                      |

|wsrep_local_bf_aborts        | 0                                                        |

|wsrep_local_index            | 1                                                       |

|wsrep_provider_name          |Galera                                                  |

|wsrep_provider_vendor        | CodershipOy <info@codership.com>                        |

|wsrep_provider_version       |25.3.19(r3667)                                           |

|wsrep_ready                  | ON                                                       |

|wsrep_thread_count           | 2                                                       |

+------------------------------+----------------------------------------------------------+

58 rowsin set (0.00 sec)

1.10.2 创建数据库和表并写入数据

节点1:

MariaDB[(none)]> CREATE DATABASE `ngoss_dim` /*!40100 DEFAULT CHARACTER SET utf8*/;

QueryOK, 1 row affected (0.02 sec)

MariaDB[(none)]> use ngoss_dim;

Databasechanged

MariaDB[ngoss_dim]> create table tb_t1(id int,name varchar(64)) engine=innodb;

QueryOK, 0 rows affected (0.02 sec)

MariaDB[ngoss_dim]> insert into tb_t1values(1,'name1'),(2,'name2'),(3,'name3'),(4,'name4'),(5,'name5');

QueryOK, 5 rows affected (0.01 sec)

Records:5  Duplicates: 0  Warnings: 0

MariaDB[ngoss_dim]> select * from tb_t1;

+------+-------+

|id   | name  |

+------+-------+

|    1 | name1 |

|    2 | name2 |

|    3 | name3 |

|    4 | name4 |

|    5 | name5 |

+------+-------+

5 rowsin set (0.00 sec)

在另外两个节点节点1和节点2上查看

[root@host02bin]# ./mysql -h localhost -uroot -pmysql

Welcometo the MariaDB monitor.  Commands endwith ; or \g.

YourMariaDB connection id is 4

Serverversion: 10.0.31-MariaDB-wsrep MariaDB Server, wsrep_25.19.rc3fc46e

Copyright(c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB[(none)]> show databases;

+--------------------+

|Database           |

+--------------------+

|information_schema |

|mysql              |

|ngoss_dim          |

|performance_schema |

|test               |

+--------------------+

5 rowsin set (0.00 sec)

MariaDB[(none)]> use ngoss_dim;

Readingtable information for completion of table and column names

You canturn off this feature to get a quicker startup with -A

Databasechanged

MariaDB[ngoss_dim]> show tables;

+---------------------+

|Tables_in_ngoss_dim |

+---------------------+

|tb_t1               |

+---------------------+

1 row inset (0.00 sec)

MariaDB[ngoss_dim]> select * from tb_t1;

+------+-------+

|id   | name  |

+------+-------+

|    1 | name1 |

|    2 | name2 |

|    3 | name3 |

|    4 | name4 |

|    5 | name5 |

+------+-------+

5 rowsin set (0.00 sec)

MariaDB[ngoss_dim]>

节点3:

[root@hxl03bin]# ./mysql -h localhost -uroot -pmysql

Welcometo the MariaDB monitor.  Commands endwith ; or \g.

YourMariaDB connection id is 5

Serverversion: 10.0.31-MariaDB-wsrep MariaDB Server, wsrep_25.19.rc3fc46e

Copyright(c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB[(none)]> show databases;

+--------------------+

|Database           |

+--------------------+

|information_schema |

|mysql              |

|ngoss_dim          |

|performance_schema |

|test               |

+--------------------+

5 rowsin set (0.00 sec)

MariaDB[(none)]> use ngoss_dim;

Readingtable information for completion of table and column names

You canturn off this feature to get a quicker startup with -A

Databasechanged

MariaDB[ngoss_dim]> show tables;

+---------------------+

| Tables_in_ngoss_dim|

+---------------------+

|tb_t1               |

+---------------------+

1 row inset (0.00 sec)

MariaDB[ngoss_dim]> select * from tb_t1;

+------+-------+

|id   | name  |

+------+-------+

|    1 | name1 |

|    2 | name2 |

|    3 | name3 |

|    4 | name4 |

|    5 | name5 |

+------+-------+

5 rowsin set (0.00 sec)

1.11 安装nginx

1.11.1 下载

下载地址:

https://nginx.org/en/download.html

我这里下载的是

nginx-1.12.0.tar.gz

1.11.2 安装所需环境

gcc 安装

yuminstall gcc-c++

PCRE pcre-devel安装

yuminstall -y pcre pcre-devel

zlib 安装

yuminstall -y zlib zlib-devel

OpenSSL 安装

yuminstall -y openssl openssl-devel

1.11.3 解压安装

[root@hxl03opt]# tar -zxvf nginx-1.12.0.tar.gz

[root@hxl03opt]# mv nginx-1.12.0 nginx112

[root@hxl03opt]# cd nginx112

我们这里使用的是tcp第四次协议,需要安装stream模块

[root@hxl03nginx112]# ./configure --with-stream --with-stream_ssl_module

[root@hxl03nginx112]# make

[root@hxl03nginx112]# make install

1.11.4 启动、停止nginx

cd/usr/local/nginx/sbin/

./nginx

./nginx-s stop

./nginx-s quit

./nginx-s reload

./nginx-s quit:此方式停止步骤是待nginx进程处理任务完毕进行停止。

./nginx-s stop:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。

查询nginx进程:

psaux|grep nginx

在ie栏输入服务器ip地址,可以查看到nginx已经安装成功

1.11.5 重启nginx

1.先停止再启动(推荐):

对 nginx 进行重启相当于先停止再启动,即先执行停止命令再执行启动命令。如下:

./nginx-s quit

./nginx

2.重新加载配置文件:

当 ngin x的配置文件 nginx.conf 修改后,要想让配置生效需要重启 nginx,使用-s reload不用先停止 ngin x再启动 nginx 即可将配置信息在 nginx 中生效,如下:

./nginx-s reload

1.11.6 配置nginx

配置文件如下

[root@hxl03conf]# more nginx.conf

worker_processesauto;

##error_loglogs/error.stream.log info;

events {

worker_connections  1024;

}

stream {

log_format proxy '$remote_addr[$time_local] '

'$protocol $status $bytes_sent$bytes_received '

'$session_time"$upstream_addr" '

'"$upstream_bytes_sent""$upstream_bytes_received" "$upstream_connect_time"';

access_log/usr/local/nginx/logs/tcp-access.log proxy ;

open_log_file_cache off;

upstream galera {

hash $remote_addr consistent;

server 192.168.56.11:3306;

server 192.168.56.12:3306;

server 192.168.56.13:3306;

}

server {

listen 23306;

proxy_connect_timeout 1s;

proxy_timeout 3s;

proxy_pass galera;

}

}

1.11.7 验证

通过nginx登录集群的方法:

./mysql  -h nginx服务器ip –u用户 –p密码 –P端口号

Host01登录:

[root@host01bin]# ./mysql -h 192.168.56.13 -uroot -pmysql -P23306

Welcometo the MariaDB monitor.  Commands endwith ; or \g.

YourMariaDB connection id is 4

Serverversion: 10.0.31-MariaDB-wsrep MariaDB Server, wsrep_25.19.rc3fc46e

Copyright(c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB[(none)]>

Host02登录:

[root@host02bin]# ./mysql -h 192.168.56.13 -uroot -pmysql -P23306

Welcometo the MariaDB monitor.  Commands endwith ; or \g.

YourMariaDB connection id is 5

Serverversion: 10.0.31-MariaDB-wsrep MariaDB Server, wsrep_25.19.rc3fc46e

Copyright(c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB[(none)]>

Host03登录:

[root@hxl03bin]# ./mysql -h 192.168.56.13 -uroot -pmysql -P23306

Welcometo the MariaDB monitor.  Commands endwith ; or \g.

YourMariaDB connection id is 4

Serverversion: 10.0.31-MariaDB-wsrep MariaDB Server, wsrep_25.19.rc3fc46e

Copyright(c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB[(none)]>

mariadb galera 集群部署相关推荐

  1. mariadb Galera集群部署

    MariaDB Galera Cluster介绍 Galera Cluster是Codership公司开发的一套免费开源的高可用方案,Galera Cluster即安装了Galera的Mariadb集 ...

  2. MariaDB Galera 集群安装配置

    MariaDB Galera Cluster 介绍 MariaDB Galera Cluster 是开源的 MariaDB同步多主机集群.它仅支持XtraDB/ InnoDB存储引擎.MariaDB作 ...

  3. Galera集群部署基础操作

    Galera Cluster 介绍 Galera是一个MySQL(也支持MariaDB,Percona)的同步多主集群软件. 主要功能: 1.同步复制 2.Active-active的多主拓扑结构 3 ...

  4. Galera集群部署

    Galera Cluster 介绍 Galera是一个MySQL(也支持MariaDB,Percona)的同步多主集群软件. 一.主要功能 同步复制Active-active的多主拓扑结构 真正的mu ...

  5. MariaDB Galera Cluster 集群部署

    MariaDB Galera Cluster 介绍 Galera Cluster是Codership公司开发的一套免费开源的高可用方案,Galera Cluster即安装了Galera的Mariadb ...

  6. 私有云办公平台大规模集群/企业级集群/小型工作室集群解决方案:NextCloud集群部署方案--NextCloud集群架构设计

    原作者:NextCloud文档库 转载来源:https://docs.nextcloud.com/server/11/admin_manual/installation/deployment_reco ...

  7. mysql galera haproxy_安装配置Haproxy代理MySQL Galera集群

    这篇文章,我讲介绍如何为MariaDB Galera 集群添加负载均衡,大致步骤如下:确认所有Galera节点作为一个单一集群运行(所有节点都是主节点而且相互同步) 安装Haproxy(你可以安装到独 ...

  8. mysql galera集群搭建_搭建mysql_galera数据库集群

    1,Mariadb Galera Cluster 集群介绍 Mariadb Galera Cluster 是MySQL高可用性和可扩展的解决方案 Mariadb Galera Cluster 是一套在 ...

  9. ttlsa教程系列之MySQL---MySQL/Galera集群-多主高可用性负载均衡

    为什么80%的码农都做不了架构师?>>>    ttlsa教程系列之MySQL ---- MySQL/Galera集群-多主高可用性负载均衡 Percona和MariaDB发布版本中 ...

最新文章

  1. 晒加班晒熬夜……“晒勤奋”是一种病!
  2. MySQL - 剖析MySQL索引底层数据结构
  3. JavaFX技巧3:使用回调接口
  4. JavaFX 2.0 Hello World
  5. CSDN博客投票活动开始了
  6. python 如何快速判断列表是否相同_Python-检查列表中的所有元素是否相同
  7. 关于大型网站技术演进的思考(六)--存储的瓶颈(6)
  8. Windows server 2012 r2更新
  9. 收集SQLite中的时间日期函数[ZT]
  10. python sorted下标_初学者掌握python 列表需要知道的操作
  11. DB9串口定义及含义
  12. 网页效果图设计之色彩配色索引
  13. 获取汉字的拼音码(工具类)
  14. 【软件测试面试题】证券项目面试过程总结
  15. 硬件负载均衡设备介绍
  16. 一文带你了解 sensor
  17. Linux环境下安装python并编写简单程序
  18. Ubuntu 16.04 安装搜狗输入法(打中文)
  19. 齐二TK6916/20/26/32系列数控落地铣镗床简介3
  20. 《Linux Kernel Development》读书笔记

热门文章

  1. RH236客户端配置--通过CIFS挂载
  2. C++ assert
  3. VBS与CSBS的区别(备份服务) CSDR与CSHA与VHA的区别(容灾服务)
  4. 基于JavaWeb的党员管理系统
  5. 付费内推实习是“割韭菜”吗?超级实习生计划也是吗?
  6. 教你如何构建一个简单的遗传算法模型实现对密码的预测
  7. 汽车驾驶学习-驾驶技巧:小汽车如何起步停车-怎样驾驶小汽车-汽车起步要领
  8. mysql qps_mysql QPS 过高问题处理
  9. linux crond
  10. TrinityCore 魔兽世界私服11159 完整配置