欢迎投稿

今日深度:

CentOS7安装、配置MariaDB集群,centos7mariadb

CentOS7安装、配置MariaDB集群,centos7mariadb


安装 MariaDB 集群至少需要 3 台服务器,我的机器配置:
操作系统版本:centos7
node0 192.168.1.14
node1 192.168.1.15
node2 192.168.1.16

准备工作

1.在三台机器修改 /etc/hosts文件,我的文件如下:

10.128.20.16 node0
10.128.20.17 node1
10.128.20.18 node2

2.初始化环境

  • 为了保证节点间相互通信,需要禁用防火墙设置,selinux 设置成 disabled
  • 开启3306、4567、4568、4444四个端口

3306 For MySQL client connections and State Snapshot Transfer that use the mysqldump method.
4567 For Galera Cluster replication traffic, multicast replication uses both UDP transport and TCP on this port. 需要放开TCP和UDP
4568 For Incremental State Transfer. 需要防火墙放开TCP
4444 For all other State Snapshot Transfer.需要防火墙放开TCP

安装 MariaDB Galera Cluster

在三台服务器上分别执行:
1.创建/etc/yum.repos.d/MariaDB.repo文件

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos6-amd64/
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

2.安装

# yum install MariaDB-server MariaDB-client galera
# yum install percona-xtrabackup
# yum install socat

3.初始化数据库

#cd /usr/bin/
#./mysql_install_db --user=mysql

配置MariaDB Galera Cluster

1.修改集群节点配置

[root@localhost ~]# cp /usr/share/mysql/wsrep.cnf /etc/my.cnf.d/
[root@localhost ~]# vi /etc/my.cnf.d/wsrep.cnf

修改如下几行

wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address=”gcomm://192.168.1.14,192.168.1.15,192.168.1.16”
wsrep_node_name=node0
wsrep_sst_method=xtrabackup
wsrep_sst_auth=root:root

修改/etc/my.cnf.d/server.cnf

wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address=gcomm://192.168.1.14
wsrep_node_name= node0
wsrep_node_address= 192.168.1.14
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2

修改/etc/my.cnf文件,添加

!includedir /etc/my.cnf.d/

其余两台服务器做类似设置,仅wsrep_node_name和wsrep_node_address修改为相应节点值

2.初始化数据库服务
选择一个节点执行

#mysqld --wsrep-new-cluster

建立一个新集群(192.168.1.14),其余节点执行

#mysqld --wsrep_cluster_address=gcomm://192.168.1.14

加入(192.168.1.14)集群,日志中出现

[Note] mysqld: ready for connections.
证明启动成功

3.登录数据库操作
登录数据库

#mysql -u root -p
Enter password://输入密码

4.查看集群状态

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


其中:
wsrep_connected = on //链接已开启
wsrep_cluster_size =3 //集群中节点的数量
wsrep_incoming_addresses = 192.168.1.14:3306,192.168.1.15:3306,192.168.1.16:3306 //集群中节点的访问地址
如果wsrep_connected=ON且wsrep_ready=ON则说明节点成功接入集群。

验证数据同步

1.查看数据库

MariaDB [(none)]>  show databases;

2.在数据库mysql中创建表mytesttab

MariaDB [(none)]> create table mysql.mytesttab(id int unsigned not null,name char(30) not null, age tinyint unsigned, gender enum('f','m'),primary key(id,gender),class char(30));

3.查看指定数据库中的表

MariaDB [(none)]> show tables from mysql;

4.登录其它节点查看数据是否同步

遇到的问题

1.启动节点时出现

Fatal error: Please consult the Knowledge Base to find out how to run mysqld as root!

在启动语句后加 –user=root
2.数据库启动时提示3306端口被占用

#netstat -nltp|grep 3306

kill掉占用端口进程重试
3.修改数据库密码

#mysqladmin -u root password root //修改root用户密码为root

或者

# mysql -uroot -p
Enter password: 【输入原来的密码】
mysql>use mysql;
mysql> update user set password=passworD("test") where user='root';
mysql> flush privileges;
mysql> exit; 

4.Table ‘.\Tablename\posts’ is marked as crashed and should be repaired
找到mysql的安装目录的bin/myisamchk工具,在命令行中输入:
myisamchk -c -r ../data/tablename/posts.MYI
5.权限

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'root' WITH GRANT OPTION; 
mysql>flush privileges;

6.指定数据存放位置
创建数据存放目录/opt/mysql 更改权限

chown -R mysql:mysql /opt/mysql

找到mysql的安装目录的bin

#./mysql_install_db --user=mysql --datadir=/opt/mysql

修改/etc/my.cnf

[client-server]
socket=/opt/mysql/mysql.sock //添加
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d/
[mysqld]
datadir =/opt/mysql/         //添加

参考

Linux之MariaDB基础详解
Getting Started with MariaDB Galera Cluster

www.htsjk.Com true http://www.htsjk.com/mariadb/35400.html NewsArticle CentOS7安装、配置MariaDB集群,centos7mariadb 安装 MariaDB 集群至少需要 3 台服务器,我的机器配置: 操作系统版本:centos7 node0 192.168.1.14 node1 192.168.1.15 node2 192.168.1.16 准备工作 1.在三台机器...
相关文章
    暂无相关文章
评论暂时关闭