如何在Ubuntu 16.04上安装MySQL集群

MySQL集群是为MySQL数据库提供高可用性的技术。 它使用NDB(网络数据库)或NDBCLUSTER作为数据库存储引擎。 MySQL集群被设计为多主ACID架构,没有单点故障,它使用自动分片(分区)来扩展读写过程。

要实现MySQL集群,我们需要3种不同类型的节点:

  • 管理节点( ndb_mgmd
    • 用于监视和配置集群。
  • 数据节点( ndbd
    • 这些节点用于存储他们提供自动分片的数据,并可以处理复制。
  • SQL节点( mysqld
    • 用于连接到所有节点的MySQL Server接口。

在本教程中,我将向您展示如何在Ubuntu 16.04 LTS(Xenial Xerus)上安装“MySQL群集”。

先决条件

  • 4节点与Ubuntu服务器16.04
  1. 192.168.1.11管理节点
  2. 192.168.1.12 data-node1
  3. 192.168.1.13 data-node2
  4. 192.168.1.14 sql-node
  • 节点上的根权限。

第1步 - 安装和配置管理节点

在此步骤中,我们将为IP地址为192.168.1.11的集群安装管理节点。 我们安装MySQL集群软件并将其配置为集群的管理节点。

使用ssh登录管理节点:

ssh root@192.168.1.11
TYPE YOUR PASSWORD

A.安装MySQL群集管理节点

在这里打开MySQL集群站点,选择“ Linux-generic ”选项,然后点击“ 下载 ”按钮下载64位软件包。

用wget下载MySQL集群包并解压。

wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
tar -xzvf mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz

将目录重命名为mysql:

mv mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64/ mysql/

转到mysql目录并将集群管理命令' ndb_mgmdndb_mgm '的2个二进制文件复制到'/ usr / local / bin /'目录,然后使用chmod命令使其可执行。

cd ~/mysql/
cp bin/ndb_mgm* /usr/local/bin/
chmod +x /usr/local/bin/ndb_mgm*

B.配置MySQL群集管理节点

通过为'/ var / lib /'目录中的配置文件创建一个新目录'mysql-cluster'来配置管理节点。

创建一个目录“mysql-cluster”并在目录中创建一个新的配置“config.ini”:

mkdir -p /var/lib/mysql-cluster/
vim /var/lib/mysql-cluster/config.ini

粘贴以下配置:

[ndbd default]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M

[mysqld default]

[ndb_mgmd default]

[tcp default]

# Cluster Control / Management node
[ndb_mgmd]
hostname=192.168.1.11

# Data Node 1
[ndbd]
hostname=192.168.1.12
DataDir= /var/lib/mysql-cluster

# Data Node 1
[ndbd]
HostName=192.168.1.13
DataDir=/var/lib/mysql-cluster

# SQL Node
[mysqld]
hostname=192.168.1.14

# If you to add new SQL Node
[mysqld]

更改用于管理的ndb_mgmd的IP地址,用于数据节点的ndbd和sql节点的mysqld以匹配您的设置。

保存文件并退出。

接下来,使用以下命令启动管理节点进程:

ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/

通过向/etc/rc.local文件添加命令使其在启动时启动:

echo 'ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/' >> /etc/rc.local

如果看到结果:

MySQL Cluster Management Server mysql-5.6.31 ndb-7.4.12

然后管理节点进程正在运行。

使用另一个命令检查管理节点:

# Checking port 1186 used by ndb_mgmd
netstat -plntu

# Checking the management node is ready
ndb_mgm
show

第2步 - 安装并配置数据节点

在这一步中,我们将安装MySQL集群软件并将其配置为数据节点。 我们将使用2个ubuntu 16.04服务器作为数据节点:data-node1,IP地址为192.168.1.12,data-node2的IP地址为192.168.1.13。

使用ssh登录到data-node1服务器:

ssh root@192.168.1.12

A.在数据节点上安装MySQL集群

在我们安装MySQL集群软件之前,我们需要安装一个新的软件包“ libaio1 ”并创建一个新的用户和组mysql 。 以root身份运行以下命令:

apt-get install libaio1
groupadd mysql
useradd -g mysql mysql

现在下载MySQL集群包“ Linux-Generic ”,将目录解压并重命名为mysql。

wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
tar -xzvf mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
mv mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64/ mysql/

将'mysql'目录移动到'/ usr / local /'并转到该目录。

mv mysql /usr/local/
cd /usr/local/mysql/

运行用于创建系统数据库的脚本:

./scripts/mysql_install_db --user=mysql

如果没有错误,请将mysql服务文件复制到“ /etc/init.d ”目录中,并将mysql启动脚本添加到启动时运行。

cp support-files/mysql.server /etc/init.d/mysql
systemctl enable mysql

接下来,将所有的mysql二进制命令移动到' / usr / local / bin '目录并创建一个新的符号链接。

mv bin/* /usr/local/bin/
rm -rf bin/
ln -s /usr/local/bin /usr/local/mysql/

将mysql目录的所有者更改为用户root和组mysql,并将数据目录更改为mysql作为所有者。

chown -R root:mysql .
chown -R mysql data

B.配置MySQL群集数据节点

用vim创建一个新的mysql配置文件' my.cnf '

vim /etc/my.cnf

粘贴配置如下:

# MySQL Config
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql

# Run ndb storage engine
ndbcluster
# IP address management node
ndb-connectstring=192.168.1.11

[mysql_cluster]
# IP address management node
ndb-connectstring=192.168.1.11

# MySQL Pid and Log
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

保存并退出。

为数据节点创建新目录,并将所有权更改为mysql用户。

mkdir -p /var/lib/mysql-cluster/
chown -R mysql /var/lib/mysql-cluster

C.在数据节点上启动MySQL

使用以下命令启动mysql服务:

ndbd --initial
systemctl start mysql

确保没有错误,结果如下(data-node2):

数据节点上的MySQL已启动。 现在您可以使用以下命令配置MySQL密码:

mysql_secure_installation

或访问MySQL shell。

mysql -u root -p

注意
在“ data-node2 ”服务器上重新设置此步骤IP地址192.168.1.13。

第3步 - 安装和配置SQL节点

在此步骤中,我们将安装MySQL Cluster软件并将其配置为SQL Node。 该节点用于访问数据节点上的数据库。 安装过程与数据节点相同,但我们不必在SQL节点中运行ndbd服务。

使用ssh登录到SQL节点:

ssh root@192.168.1.14

A.在SQL节点上安装MySQL集群

安装libaio1包并创建一个新的用户和组mysql:

apt-get install libaio1
groupadd mysql
useradd -g mysql mysql

从站点下载mysql群集包,提取并重命名它:

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
tar -xzvf mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
mv mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64/ mysql/

移动mysql目录:

mv mysql /usr/local/
cd /usr/local/mysql/

运行mysql_install_db脚本:

./scripts/mysql_install_db --user=mysql

复制服务文件并将其添加到启动时启动:

cp support-files/mysql.server /etc/init.d/mysql
systemctl enable mysql

将所有mysql二进制文件移动到'/ usr / local / bin '目录中:

mv bin/* /usr/local/bin/
rm -rf bin/
ln -s /usr/local/bin /usr/local/mysql/

更改所有文件和目录的所有者:

chown -R root:mysql .
chown -R mysql data

B.配置MySQL集群SQL节点

使用vim创建一个新的my.cnf配置文件:

vim /etc/my.cnf

粘贴以下配置:

# MySQL Config
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql

# Run ndb storage engine
ndbcluster
# IP address management node
ndb-connectstring=192.168.1.11

[mysql_cluster]
# IP address management node
ndb-connectstring=192.168.1.11

# MySQL Pid and Log
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

保存并退出。

C.启动SQL节点

使用systemctl命令启动mysql服务启动SQL节点:

systemctl start mysql

SQL节点启动,现在可以配置MySQL的密码。

mysql_secure_installation

第4步 - 测试

测试从SQL节点创建一个新的数据库。

mysql -u root -p
TYPE PASSWORD


create database nanana;

检查数据库是否在数据节点服务器上复制。
当节点关闭时,另一个节点将处理来自SQL节点的连接。

mysql -u root -p
TYPE PASSWORD


show databases;

从管理节点检查集群状态:

ndb_mgm
show

第5步 - 其他提示

执行安全重启和关闭集群。

转到集群管理节点并键入以下命令关闭集群:

ndb_mgm
shutdown

该命令将关闭数据节点上的所有ndb服务。

如果要再次启动群集,可以在管理节点上运行以下命令:

ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir = / var / lib / mysql-cluster /

并在所有数据节点上运行以下命令:

ndbd
systemctl start mysql

然后在SQL节点上启动mysql服务:

systemctl start mysql

现在你的MySQL集群正在运行。

参考

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏