ubuntu下mysql_cluster基础搭建

来源:互联网 发布:建筑工程用什么软件 编辑:程序博客网 时间:2024/06/02 06:08

准备

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/localtar -zxvf /home/jwing/Downloads/mysql-cluster-gpl-7.3.18-linux-glibc2.12-x86_64.tar.gzmv mysql-cluster-gpl-7.3.18-linux-glibc2.12-x86_64 mysql_cluster// 将管理命令(ndb_mgm,ndb_mgmd)复制到/usr/local/bin下cd mysql_cluster/bincp ndb_mgm* /usr/local/bin// 新建管理文件并配置mkdir /var/lib/mysql-clustercd /var/lib/mysql-clustervi config.ini

config.ini文件内容:

# Options affecting ndbd processes on all data nodes:[NDBD DEFAULT]    NoOfReplicas=2DataMemory=80MIndexMemory=18M# TCP/IP options:[TCP DEFAULT]    #portnumber=2202# Management process options:[NDB_MGMD]          nodeid=1          HostName=192.168.131.130DataDir=/var/lib/mysql-cluster/# Options for data node :[NDBD]                          nodeid=2HostName=192.168.131.131DataDir=/usr/local/mysql_cluster/data/# Options for data node :[NDBD]  nodeid=3                     HostName=192.168.131.132DataDir=/usr/local/mysql_cluster/data/# SQL node options:[MYSQLD] nodeid=4                      HostName=192.168.131.131[MYSQLD]nodeid=5HostName=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/localtar -zxvf /home/jwing/Downloads/mysql-cluster-gpl-7.3.18-linux-glibc2.12-x86_64.tar.gzmv mysql-cluster-gpl-7.3.18-linux-glibc2.12-x86_64.tar.gz mysql_cluster// 将ndbd命令复制到/usr/local/bin下cd mysql_cluster/bincp ndbd /usr/local/bin

3、创建系统数据库:

cd /usr/local/mysql_clusterapt-get install libaio1 libaio-devscripts/mysql_install_db --user=mysql

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

4、设置权限

chown -R root .chown -R mysql datachgrp -R mysql .

5、设置自启动

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

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

// 新建并编辑my.cnfvi /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/profilesource /etc/profile

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

export MYSQL_HOME=/usr/local/mysql_clusterPATH=${MYSQL_HOME}/bin:$PATHexport 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环境仍然可以工作。