为了账号安全,请及时绑定邮箱和手机立即绑定

Mysql集群安装详细步骤

标签:
MySQL

webp

图片.png

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

webp

图片.png

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.rpmrpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpmrpm -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 filesDataDir=/var/lib/mysql-cluster
 
[ndb_mgmd]#Management Node db1HostName=192.168.1.120
 [ndbd default]
NoOfReplicas=2      # Number of replicasDataMemory=256M     # Memory allocate for data storageIndexMemory=128M    # Memory allocate for index storage#Directory for Data NodeDataDir=/var/lib/mysql-cluster
 
[ndbd]#Data Node db2HostName=192.168.1.121
 [ndbd]#Data Node db3HostName=192.168.1.122
 [mysqld]#SQL Node db4HostName=192.168.1.123
 [mysqld]#SQL Node db5HostName=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.102016-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”来监视节点:

ndb_mgm
show

webp

图片.png

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

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

DB2=192.168.1.121
DB3=192.168.1.122

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

使用ssh登录DB2服务器:

ssh root@192.168.1.121

然后下载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.rpmrpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpmrpm -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

webp

图片.png

数据节点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 root@192.168.1.123

下载 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.rpmrpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpmrpm -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 nodedefault_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 root@192.168.1.120

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

ndb_mgm
ndb_mgm> show

webp

图片.png

其他有用的命令

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

步骤5-测试群集

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

登录到DB4服务器:

ssh root@192.168.1.123

更改根目录下“.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;

webp

图片.png

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

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

webp

图片.png



作者:趋势One
链接:https://www.jianshu.com/p/54630381b01b


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消