vlambda博客
学习文章列表

Mysql集群安装操作手册 for centos8

MySQL集群是为了提供一个高可用性和低延迟的MySQL兼容数据库而设计的。mysql集群技术通过ndb(网络数据库)和ndb cluster存储引擎实现,为mysql数据库系统提供无共享集群和自动分片。在无共享架构中,每个节点都有自己的内存和磁盘,不建议和支持使用共享存储(如NFS、SAN)。

为了实现MySQL集群,我们必须安装三种类型的节点。每个节点类型都将安装在自己的服务器上。组件包括:

1。管理节点-ndb_mgmd/mgm

集群管理服务器用于管理集群的其他节点。我们可以从管理节点创建和配置集群上的新节点、重新启动、删除或备份节点。

2。数据节点-ndbd/ndb

这是节点之间发生同步和数据复制过程的层。

3。SQL节点-mysqld/api

应用程序用于连接到数据库群集的接口服务器。

使用Centos7安装和配置MySQL集群。我们将配置管理节点、两个数据节点和两个SQL节点

先决条件

1. CentOS 7 - 64bit.
2. CentOS服务器名称ip如下

管理节点 Management Node
db1 = 192.168.1.120

数据节点 Data Nodes
db2 = 192.168.1.121
db3 = 192.168.1.122

Sql节点 SQL Nodes
db4 = 192.168.1.123
db5 = 192.168.1.124

步骤1-设置管理节点

第一步是使用CentOS 7 DB1和IP 192.168.1.120创建“管理节点”。确保以根用户身份登录到DB1服务器。

a.下载mysql集群软件

我将用wget从mysql网站下载。我在这里使用的是“Red Hat Enterprise Linux 7/Oracle Linux 7(x86,64位),RPM包”,它与CentOS 7兼容。然后提取tar文件。

cd ~
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

b.安装和拆除包装

在安装MySQL集群的RPM包之前,需要安装MySQL集群服务器所需的Perl数据转储程序。在安装mysql集群之前,您需要删除mariadb libs。

yum -y install perl-Data-Dumper
yum -y remove mariadb-libs

c.安装mysql集群

使用以下rpm命令安装mysql cluster包:

cd ~
rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm

d.配置mysql集群

为配置文件创建新目录。我将使用“/var/lib/mysql cluster”目录。

mkdir -p /var/lib/mysql-cluster

然后为mysql cluster目录中名为“config.ini”的集群管理创建新的配置文件。

cd /var/lib/mysql-cluster
vi config.ini
[ndb_mgmd default]
# Directory for MGM node log files
DataDir=/var/lib/mysql-cluster

[ndb_mgmd]
#Management Node db1
HostName=192.168.1.120

[ndbd default]
NoOfReplicas=2 # Number of replicas
DataMemory=256M # Memory allocate for data storage
IndexMemory=128M # Memory allocate for index storage
#Directory for Data Node
DataDir=/var/lib/mysql-cluster

[ndbd]
#Data Node db2
HostName=192.168.1.121

[ndbd]
#Data Node db3
HostName=192.168.1.122

[mysqld]
#SQL Node db4
HostName=192.168.1.123

[mysqld]
#SQL Node db5
HostName=192.168.1.124

保存

e.启动管理节点

接下来,使用下面的命令启动管理节点:

ndb_mgmd --config-file=/var/lib/mysql-cluster/config.ini

返回内容

MySQL Cluster Management Server mysql-5.6.28 ndb-7.4.10
2016-03-22 19:26:08 [MgmtSrvr] INFO -- The default config directory '/usr/mysql-cluster' does not exist. Trying to create it...
2016-03-22 19:26:08 [MgmtSrvr] INFO -- Successfully created config directory

管理节点已启动,现在可以使用命令“ndb_mgm”来监视节点:

show

步骤2-设置MySQL集群数据节点

我们将使用2个CentOS服务器作为数据节点。

DB2=192.168.1.121
DB3=192.168.1.122

a.以root用户身份登录,下载mysql集群软件

使用ssh登录DB2服务器:

ssh [email protected]

然后下载mysql cluster包并将其解压缩:

cd ~
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

b.安装和拆除包装

安装Perl数据转储程序并删除mariadb libs:

yum -y install perl-Data-Dumper
yum -y remove mariadb-libs

c.安装mysql集群

现在,我们可以使用以下rpm命令为数据节点安装mysql集群包:

cd ~
rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm

d.配置数据节点

使用vi编辑器在/etc目录中创建新的配置文件:

vi /etc/my.cnf
[mysqld]
ndbcluster
ndb-connectstring=192.168.1.120 # IP address of Management Node

[mysql_cluster]
ndb-connectstring=192.168.1.120 # IP address of Management Node

保存

然后为我们在管理节点配置文件“config.ini”中定义的数据库数据创建新目录。

mkdir -p /var/lib/mysql-cluster

现在开始data node/ndbd:

ndbd
2016-03-22 19:35:56 [ndbd] INFO     -- Angel connected to '192.168.1.120:1186'
2016-03-22 19:35:56 [ndbd] INFO -- Angel allocated nodeid: 2

Mysql集群安装操作手册 for centos8

数据节点DB2连接到管理节点IP 192.168.1.120。

e.在DB3服务器上重做步骤2.a-2.d。

由于我们有两个数据节点,请在第二个数据节点上重做步骤2.a-2.d。

步骤3-设置SQL节点

这是一个步骤,包含为SQL节点提供对数据库的应用程序访问的设置。我们为SQL节点使用2个CentOS服务器:

DB4=192.168.1.123

DB5=192.168.1.124

a.登录下载mysql集群

ssh [email protected]

下载 MySQL Cluster package:

cd ~
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

b.安装和拆除包装

安装perl数据转储程序并删除与mysql集群冲突的mariadb libs。

yum -y install perl-Data-Dumper
yum -y remove mariadb-libs

c.安装mysql集群

使用下面的rpm命令安装mysql集群服务器、客户端和共享包:

cd ~
rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm

d.配置SQL节点

在/etc目录中新建my.cnf文件:

vi /etc/my.cnf
[mysqld]
ndbcluster
ndb-connectstring=192.168.1.120 # IP address for server management node
default_storage_engine=ndbcluster # Define default Storage Engine used by MySQL

[mysql_cluster]
ndb-connectstring=192.168.1.120 # IP address for server management node

保存文件并退出编辑器。

通过启动MySQL服务器启动SQL节点:

service mysql start

e.在DB5服务器上重做步骤3.a-3.d。

请在第二个SQL Server(DB5)上重做步骤3.a-3.d。

步骤4-监视群集

要查看集群状态,我们必须登录到管理节点db1。

ssh [email protected]

我们可以使用ndb_mgm命令查看集群状态:

ndb_mgm
ndb_mgm> show

Mysql集群安装操作手册 for centos8

其他有用的命令

ndb_mgm -e "all status"
ndb_mgm -e "all report memory"

步骤5-测试群集

要在新的MySQL集群上执行测试,我们必须登录到SQL节点DB4或DB5服务器。

登录到DB4服务器:


ssh [email protected]

更改根目录下“.mysql_secret”文件中存储的默认mysql密码:

cd ~
cat .mysql_secret

例子

# The random password set for the root user at Tue Mar 22 19:44:07 2016 (local time): qna3AwbJMuOnw23T


现在用下面的命令更改密码:

mysql_secure_installation

键入旧的MySQL密码,然后键入新密码,按Enter确认所有密码。

如果全部完成,您可以用密码登录mysql shell:

mysql -u root -p

登录后,用主机“@”创建一个新的根用户,这样我们就可以从外部访问MySQL。

CREATE USER 'root'@'%' IDENTIFIED BY 'aqwe123';

用您自己的安全密码替换AQWE123!现在您可以在mysql用户列表中看到主机为“@”的新根用户:

select user, host, password from mysql.user;

并从远程节点授予新的根用户读写访问权:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*94CC7BF027327993D738E11...(Encrypted PASSWORD)' WITH GRANT OPTION;

Mysql集群安装操作手册 for centos8

现在尝试从DB4服务器创建一个新的数据库,您也将看到DB5上的数据库。

这只是测试集群数据复制的一个示例结果。