ubuntu下mysql_cluster基础搭建

准备

1、官网下载对应版本mysql_cluster安装包—-官网链接
2、搭建环境
搭建过程中,用三台计算机来实现MySQL-Cluster环境的配置,具体环境如下:

  • 管理节点(MGM)服务器:192.168.131.130 主机名:jwing nodeid=1
  • 数据节点1(NDB ):192.168.131.131 nodeid=2
  • 数据节点2(NDB):192.168.131.132 nodeid=3
  • SQL节点1:192.168.131.131 nodeid=4
  • SQL节点2:192.168.131.132 nodeid=5

3、如果之前安装过mysql-server,在进行此次实验之前,需要将mysql-server卸载,执行以下指令卸载mysql

  • sudo apt-get autoremove –purge mysql-server
  • sudo apt-get remove mysql-server
  • sudo apt-get autoremove mysql-server
  • sudo apt-get remove mysql-common

管理节点配置

这里将主机ip为192.168.131.130的服务器作为管理节点,进行下面的配置。

// 将下载好的安装包解压到自己选择的目录下,并修改个短一点的名字
cd /usr/local
tar -zxvf /home/jwing/Downloads/mysql-cluster-gpl-7.3.18-linux-glibc2.12-x86_64.tar.gz
mv mysql-cluster-gpl-7.3.18-linux-glibc2.12-x86_64 mysql_cluster
// 将管理命令(ndb_mgm,ndb_mgmd)复制到/usr/local/bin下
cd mysql_cluster/bin
cp ndb_mgm* /usr/local/bin
// 新建管理文件并配置
mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
vi config.ini

config.ini文件内容:

# Options affecting ndbd processes on all data nodes:
[NDBD DEFAULT]    
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M

# TCP/IP options:
[TCP DEFAULT]    
#portnumber=2202

# Management process options:
[NDB_MGMD]          
nodeid=1          
HostName=192.168.131.130
DataDir=/var/lib/mysql-cluster/

# Options for data node :
[NDBD]                          
nodeid=2
HostName=192.168.131.131
DataDir=/usr/local/mysql_cluster/data/

# Options for data node :
[NDBD]  
nodeid=3                     
HostName=192.168.131.132
DataDir=/usr/local/mysql_cluster/data/

# SQL node options:
[MYSQLD] 
nodeid=4                      
HostName=192.168.131.131
[MYSQLD]
nodeid=5
HostName=192.168.131.132

数据节点与sql节点配置

在192.168.131.131主机与192.168.131.132主机上均进行以下配置
1、检查是否已有mysql用户与mysql组,若不存在,手动新增
查看:

  • cat /etc/passwd
  • cat /etc/group

新增:

  • groupadd mysql
  • useradd -g mysql mysql

2、解压

// 将下载好的安装包解压到自己选择的目录下,并修改个短一点的名字
cd /usr/local
tar -zxvf /home/jwing/Downloads/mysql-cluster-gpl-7.3.18-linux-glibc2.12-x86_64.tar.gz
mv mysql-cluster-gpl-7.3.18-linux-glibc2.12-x86_64.tar.gz mysql_cluster
// 将ndbd命令复制到/usr/local/bin下
cd mysql_cluster/bin
cp ndbd /usr/local/bin

3、创建系统数据库:

cd /usr/local/mysql_cluster

apt-get install libaio1 libaio-dev

scripts/mysql_install_db --user=mysql

(报错提示主机名不匹配,可能是压缩包下载的版本(确认操作系统是32位还是64位)问题。若是提示文件夹不存在,可能是压缩包版本(有些版本没有scripts文件夹)问题或是因为之前mysql没有完全卸载。)

4、设置权限

chown -R root .

chown -R mysql data

chgrp -R mysql .

5、设置自启动

// 将MySQL启动脚本拷贝恰当的目录下
cp support-files/mysql.server /etc/init.d 
// 使之成为可执行的脚本
chmod +x /etc/init.d/mysql.server
// 设置它能在启动操作系统时启动
apt-get install sysv-rc-conf
sysv-rc-conf mysql.server on

6、配置my.cnf
数据节点与sql节点可在同一个文件中配置,配置文件的默认位置为/etc/my.cnf

// 新建并编辑my.cnf
vi /etc/my.cnf

my.cnf内容:

[MYSQLD]
ndbcluster           
ndb-connectstring=192.168.131.130  #管理节点ip 

[MYSQL_CLUSTER] 
ndb-connectstring=192.168.131.130 #管理节点ip

7、配置mysql环境变量

vi /etc/profile
source /etc/profile

在文件最下方配置内容如下:

export MYSQL_HOME=/usr/local/mysql_cluster
PATH=${MYSQL_HOME}/bin:$PATH
export PATH

运行

1、管理节点:

配置结束后运行ndb_mgmd --ndb-nodeid=1 --initial --configdir=/var/lib/mysql-cluster/ -f /var/lib/mysql-cluster/config.ini。失败的情况请用命令ndb_mgmd --help查看参数提示。确保配置文件路径与配置文件内容是正确的。
ndb_mgm可进入管理模式,再输入show可查看当前各节点状态:

这里写图片描述

2、数据节点:

运行ndbd --initial(参数--initial只有第一次运行需要添加,该参数会导致之前的内容清空)
数据节点连接后:

这里写图片描述

3、sql节点:

/usr/local/mysql_cluster/bin/mysqld_safe --user=mysql  &
// 若执行上方命令时出现不能同时写syslog和error.log的情况,则使用以下指令:
/usr/local/mysql_cluster/bin/mysqld_safe --user=mysql  --skip-syslog &

均连接成功后:

这里写图片描述

测试

1、登录mysql(以下数据库的操作方式不多做赘述)
在192.168.131.131与192.168.131.132登录mysql

mysql -u root -p // 密码默认为空,直接回车即可登录

2、同步测试
在192.168.131.131主机的mysql上新建数据库、表与数据。在192.168.131.132主机的mysql中查看数据是否已经被同步。

create database cluster;
use cluster;
// 创建表时需要指定引擎为ndbcluster(engine=ndb or engine=ndbcluster)
create table test(id int, name char(10))engine=ndb;
insert into test(id, name)values(1,"myname");

3、高可用测试
在192.168.131.131主机中关闭ndbd连接

pkill ndbd //关闭ndbd有关进程

修改其中一个节点,查看数据是否同步。

在192.168.131.132主机中关闭sql节点的连接

pkill mysqld //关闭mysqld有关进程

在192.168.131.131主机中修改数据,再将192.168.131.132主机中的节点连接回去,查看数据是否同步。

(关闭节点后能在管理节点的ndb_mgm观察到状态)此时继续测试集群的同步性时可以发现数据仍然同步,说明了当有一个SQL节点或数据节点宕机后,整个MySQL-Cluster环境仍然可以工作。

猜你喜欢

转载自blog.csdn.net/a807557328/article/details/78247269