Mariadb Galera搭建数据库集群

1、基础知识补充

查看所有用户:cat /etc/password

查看所有用户组:cat /etc/group

查看用户所在组以及组中其他用户:groups 用户名

添加用户组:groupadd 组名

添加用户:useradd 用户名

添加用户并加入主组:useradd -g 组名 用户名

添加用户并加入附属组:useradd -G 组名 用户名

设置用户密码:passwd 用户名

修改用户主组:usermod -g 新组名 用户名

添加用户附属组:usermod -G 新组名 用户名

删除用户:userdel 用户

从组中删除用户:gpasswd -d 用户名 组名

2、开启防火墙端口

3306(数据库端口) 4444 4567(galera端口)

firewall-cmd --zone=public --add-port=3306/tcp --permanent

firewall-cmd --zone=public --add-port=4444/tcp --permanent

firewall-cmd --zone=public --add-port=4567/tcp --permanent

Mariadb Galera搭建数据库集群_第1张图片 firewall-cmd --reload 重新加载防火墙

systemctl status firewalld.service  查看防火墙状态

systemctl stop firewalld.service   关闭防火墙

systemctl disable firewalld.service 关闭防火墙开机自启动

systemctl start firewalld.service   启动防火墙

firewall-cmd --list-ports 查看开放的端口

3、创建用户

如果没有mysql用户则新建mysql用户  useradd mysql

 4、卸载自带的mariadb数据库

查找已经安装的mariadb数据库 :rpm -qa |grep mariadb

 卸载已安装的mariadb数据库:rpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodeps

或者:yum remove  mariadb

5、创建目录

mariadb的安装目录为basedir=/opt/mariadb10.3,数据目录为datadir=/data/mysql;并赋予mysql用户权限

创建目录:mkdir -p /data/mysql

分配属组权限:chown -R mysql:mysql /data/mysql/

6、下载数据库安装包

(1)下载mariadb数据库安装包:Download MariaDB Server - MariaDB.org

Mariadb Galera搭建数据库集群_第2张图片

(2)将安装包上传到/opt目录下:mariadb-10.3.27-linux-glibc_214-x86_64.tar.gz

(3)解压tar包:tar -zxvf mariadb-10.3.27-linux-glibc_214-x86_64.tar.gz

(4)重命名解压后文件:mv ./mariadb-10.3.27-linux-glibc_214-x86_64 ./mariadb10.3

(5)授权mysql用户/opt/mariadb10.3 路径权限:chown -R mysql:mysql /opt/mariadb10.3

 7、安装数据库

(1)安装:/opt/mariadb10.3/scripts/mysql_install_db --datadir=/opt/GaleraData/pkidb/ --user=mysql --basedir=/opt/mariadb10.3

(2)拷贝数据库启动文件到/etc/init.d路径:

cp /opt/mariadb10.3/support-files/mysql.server /etc/init.d/mysqld

Mariadb Galera搭建数据库集群_第3张图片

(3) 拷贝配置文件到/etc路径下:cp /opt/mariadb10.3/support-files/wsrep.cnf /etc/my.cnf

(4)修改数据库配置文件my.cnf:vim /etc/my.cnf

        datadir=/opt/GaleraData10.3/pkidb

        socket=/tmp/mysql.sock

        basedir=/opt/mariadb10.3

        log_bin=mysql-bin

        skip_name_resolve=on

        character-set-server=utf8

(5)将mysqld加入系统服务:chkconfig --add mysqld

由于之前添加mysql.server脚本至/etc/init.d/目录下,并命名为mysqld,故此处可以添加系统服务mysqld,并通过systemctl指令进行服务的启停,运行相应的mysqld脚本,服务启动时,其配置文件为默认路径/etc/下的my.cnf

(6)建立日志目录并分配权限:makdir /data/logs

  chown -R mysql:mysql /data/logs/

 8、启动数据库

/opt/mariadb10.3/support-files/mysql.server start

/etc/init.d/mysqld start

systemctl start mysqld

/opt/mariadb10.3/bin/mysqld_safe --defaults-file=/etc/my.cnf

四种启动方式,前三种本质相同,都是运行mysql.server脚本启动,调用mysqld_safe脚本,并且自动读取默认路径下的配置文件;方法四手动指定配置文件启动。

9、数据库初始化

/opt/mariadb10.3/bin/mysql_secure_installation --basedir=/opt/mariadb10.3

首先他会提示输入root密码,安装好的数据库没有密码直接回车

Change the root password? [Y/n]  修改密码

Remove anonymous users? [Y/n]   移除匿名用户

Disallow root login remotely? [Y/n]  不允许root用户远程登录

Remove test database and access to it? [Y/n]  删除test数据库

Reload privilege tables now? [Y/n]  是否重新加载授权表

10、配置环境变量, 以便在任何目录下都可以输入mysql

vim /etc/profile.d/mariadb.sh

export PATH=$PATH:/opt/mariadb10.3/bin/

进入mariadb.sh脚本所在目录, 并执行脚本, 以立即生效环境变量

source /etc/profile.d/mariadb.sh

Mariadb Galera搭建数据库集群_第4张图片

 初始化完成,登录数据库:mysql -uroot -p 回车输入密码即可登录数据库。

其他数据库都按照上述相同的方式安装

11、搭建galera集群

(1)下载galera相应版本:http://releases.galeracluster.com/

(2)安装galera-25.3.28-1.rhel7.el7.centos.x86_64.rpm

  rpm -ivh galera-25.3.28-1.rhel7.el7.centos.x86_64.rpm --nodeps --force

(3)配置数据库my.cnf 参数文件

[mysqld]

datadir=/data/mysql

socket=/tmp/mysql.sock

basedir=/opt/mariadb10.3

log_bin=mysql-bin

skip_name_resolve=on

character_set_server=utf8

pid-file=/data/mysql/localhost.localdomain.pid

skip-name-resolve

lower_case_table_names=1

server-id=202

max_connections=2000

expire_logs_days=15

log_slave_updates=1

binlog_format=ROW

max_user_connections=1000

max_allowed_packet=64M

wsrep_on=ON

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

wsrep_cluster_name="pki-Galera-Cluster"

wsrep_cluster_address="gcomm://10.6.8.202"

wsrep_node_address=10.6.8.202

wsrep_sst_receive_address=10.6.8.202

wsrep_slave_threads=5

wsrep_sst_method=rsync

[mysql]

no-auto-rehash

show-warnings

prompt="\\u@\\h : \\d \\r:\\m:\\s> "

default-character-set = utf8

[mysqld_safe]

log-error=/data/logs/mysqld.log

(4)停止数据库: /opt/mariadb10.3/support-files/mysql.server stop

(5)集群启动数据库:  

/opt/mariadb10.3/support-files/mysql.server start --wsrep-new-cluster(主节点)

/opt/mariadb10.3/support-files/mysql.server start (从节点)

(6) 登录数据库查看数据库集群状态

Mariadb Galera搭建数据库集群_第5张图片

Mariadb Galera搭建数据库集群_第6张图片(7) 授权admin用户

grant all privileges on *.* to 'admin'@'%' identified by '1qaz@WSX' with grant option;

11、出现的问题以及解决方法

问题1:缺少rsync;解决:yum install rsync

Mariadb Galera搭建数据库集群_第7张图片

 问题2:缺少lsof;解决:yum install lsof

Mariadb Galera搭建数据库集群_第8张图片

 问题3: 主节点启动成功,从节点无法成功启动,不知道什么原因,使用以下方法成功启动从节点。 解决方法:主节点启动时修改配置文件中的参数wsrep_cluster_address="gcomm://",启动成功后改回wsrep_cluster_address="gcomm://192.168.188.101,192.168.188.102"

Mariadb Galera搭建数据库集群_第9张图片

12、将原mariadb中数据库移到新的mariadb中

(1)导出原mariadb中的数据库:mysqldump -u用户名 -p 数据库名 > 输出路径及sql文件名

如:mysqldump -uroot -p test >/home/test.sql

(2)登录新的mariadb,在新mariadb中创建对应的数据库(不太版本mariadb支持的字符集及校验规则可能不同,需要做相应改变,如mariadb中使用utf8,在mariadb中没有utf8可以采用utf8mb4):

CREATE DATABASE IF NOT EXISTS test DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;

(3)在导出的原mariadb中的数据库所在目录执行命令导入数据:

mysql -u用户名 -p 数据库名 < sql文件地址
  如:mysql -uroot -p test < test.sql

你可能感兴趣的:(Linux学习笔记,mariadb,服务器,linux)