天天看点

MySQL集群(三节点)

官方下载地址http://www.mysql.com/downloads/cluster/#downloads进入下载页面,

在下拉选项中选择Red Hat&Oracle Enterporise Linux然后下载相应软件

MySQL集群(三节点)

分别下载:

MySQL-Cluster-gpl-client-7.1.4b-1.rhel5.i386.rpm

MySQL-Cluster-gpl-clusterj-7.1.4b-1.rhel5.i386.rpm

MySQL-Cluster-gpl-management-7.1.4b-1.rhel5.i386.rpm

MySQL-Cluster-gpl-server-7.1.4b-1.rhel5.i386.rpm

MySQL-Cluster-gpl-storage-7.1.4b-1.rhel5.i386.rpm

MySQL-Cluster-gpl-tools-7.1.4b-1.rhel5.i386.rpm

MySQL-Cluster-gpl-extra-7.1.4b-1.rhel5.i386.rpm

下载需要使用邮箱注册MySQL.com的账户,也可以使用以下链接:

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-client-7.1.4b-1.rhel5.x86_64.rpm/from/http://mysql.cdpa.nsysu.edu.tw/

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-clusterj-7.1.4b-1.rhel5.i386.rpm/from/http://mysql.cdpa.nsysu.edu.tw/

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-clusterj-7.1.4b-1.rhel5.x86_64.rpm/from/http://mysql.cdpa.nsysu.edu.tw/

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-debuginfo-7.1.4b-1.rhel5.i386.rpm/from/http://mysql.cdpa.nsysu.edu.tw/

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-debuginfo-7.1.4b-1.rhel5.x86_64.rpm/from/http://mysql.cdpa.nsysu.edu.tw/

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-devel-7.1.4b-1.rhel5.i386.rpm/from/http://mysql.cdpa.nsysu.edu.tw/

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-devel-7.1.4b-1.rhel5.x86_64.rpm/from/http://mysql.cdpa.nsysu.edu.tw/

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-extra-7.1.4b-1.rhel5.i386.rpm/from/http://mysql.cdpa.nsysu.edu.tw/

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-extra-7.1.4b-1.rhel5.x86_64.rpm/from/http://mysql.cdpa.nsysu.edu.tw/

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-management-7.1.4b-1.rhel5.i386.rpm/from/http://mysql.cdpa.nsysu.edu.tw/

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-management-7.1.4b-1.rhel5.x86_64.rpm/from/http://mysql.cdpa.nsysu.edu.tw/

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-server-7.1.4b-1.rhel5.i386.rpm/from/http://mysql.cdpa.nsysu.edu.tw/

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-server-7.1.4b-1.rhel5.x86_64.rpm/from/http://mysql.cdpa.nsysu.edu.tw/

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-shared-7.1.4b-1.rhel5.i386.rpm/from/http://mysql.cdpa.nsysu.edu.tw/

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-shared-7.1.4b-1.rhel5.x86_64.rpm/from/http://mysql.cdpa.nsysu.edu.tw/

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-storage-7.1.4b-1.rhel5.i386.rpm/from/http://mysql.cdpa.nsysu.edu.tw/

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-storage-7.1.4b-1.rhel5.x86_64.rpm/from/http://mysql.cdpa.nsysu.edu.tw/

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-test-7.1.4b-1.rhel5.i386.rpm/from/http://mysql.cdpa.nsysu.edu.tw/

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-test-7.1.4b-1.rhel5.x86_64.rpm/from/http://mysql.cdpa.nsysu.edu.tw/

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-tools-7.1.4b-1.rhel5.i386.rpm/from/http://mysql.cdpa.nsysu.edu.tw/

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/MySQL-Cluster-gpl-tools-7.1.4b-1.rhel5.x86_64.rpm/from/http://mysql.cdpa.nsysu.edu.tw/

以上下载的软件中,属于集群软件的是:

1.1.1.2. 数据库软件

以上属于数据库服务器软件的是:

1.1.2. 环境设置 1.1.2.1. 关闭防火墙

Iptables是一个包含在绝大多数Linux发行版中的防火墙。在默认安装的RHEL中,防火墙是打开的,且随机启动,如果要关闭防火墙,可以使用以下命令:

Service iptables stop

或使用如下命令清空防火墙策略:

【命令】

Iptables –F

以上命令执行完毕之后效果只能保持到下次重启。重启后的配置就还原了,如果希望能够在重启之后还能够保持防火墙的关闭状态,可以使用以下命令:

Chkconfig –level 35 iptables off

1.1.2.2. 关闭SELinux

SELinux的全称是Security-EnhancedLinux,是由美国国家安全局NSA开发的访问控制体制。SELinux可以最大限度地保证Linux系统的安全。

在默认安装的Linux系统中,SELinux默认是开启的,配置文件是/etc/selinux/config,一般测试过程中使用“permissive”模式,这样仅会在违反SELinux规则时发出警告,然后修改规则,最后由用户觉得是否执行严格“enforcing”的策略,禁止违反规则策略的行为。规则决定SELinux的工作行为和方式,策略决定具体的安全细节如文件系统,文件一致性。在安装过程中,可以选择“激活”、“警告”或者“关闭”SELinux。默认设置为“激活”。

为了避免SELinux影响到群集功能,需要关闭SELinux系统的功能,具体操作方式如下:

1.1.2.3. 设置主机名和IP地址

按照拓扑图修改各主机的主机名和IP地址,具体对照如下:

<b>节点名称</b>

<b>主机名</b>

<b>IP</b>

<b>掩码</b>

<b>管理节点</b>

<b>SQL</b><b>节点</b>

Mgmt

10.10.10.11

255.255.255.0

<b>数据节点1</b>

Node1

10.10.10.22

<b>数据节点2</b>

Node2

10.10.10.33

  2. MySQL集群的实现 2.1. 安装阶段 2.1.1. 管理节点-MANAGEMENT NODE

在管理节点上只需要安装管理节点软件MySQL-Cluster-gpl-management-*.rpm即可,

依次执行:

Rpm –Uvh MySQL-Cluster-gpl-management-7.1.4b-1.rhel5.i386.rpm

Rpm –Uvh MySQL-Cluster-gpl-tools-7.1.4b-1.rhel5.i386.rpm

2.1.2. SQL节点-SQLNODE

在管理节点上只需要安装管理节点软件MySQL-Cluster-gpl-server-*.rpm即可执行:,但是为了便于后期的调试和本地服务器管理,可以将client工具包一起装上

Rpm –Uvh MySQL-Cluster-gpl-server-7.1.4b-1.rhel5.i386.rpm

Rpm –Uvh MySQL-Cluster-gpl-client-7.1.4b-1.rhel5.i386.rpm

2.1.3. 数据节点-DATANODE

数据节点只需要安装数据引擎包MySQL-Cluster-gpl-storage-*.Rpm即可。

执行:

Rpm –Uvh MySQL-Cluster-gpl-storage-7.1.4b-1.rhel5.i386.rpm

2.1.4. 安装阶段注意事项

如果原先安装过单机版MYSQL软件包,一定要先进行卸载,否则会出现冲突。

2.2. 配置阶段 2.2.1. 管理节点-MANAGEMENTNODE

管理节点的配置文件包含两部分,分别是config.ini和my.cnf,本例中分别配置如下

群集配置文件/var/lib/mysql/mysql-cluster/config.ini

新建该文件内容如下。

[ndbd default]

NoOfReplicas=2

DataMemory=80M

IndexMemory=18M

[tcp default]

portnumber=2202

[ndb_mgmd]

hostname=10.10.10.11

datadir=/var/lib/mysql-cluster

[ndbd]

hostname=10.10.10.22

datadir=/usr/local/mysql/data

hostname=10.10.10.33

[mysqld]

节点配置文件/etc/my.cnf

ndbcluster

ndb-connectstring=10.10.10.11

default-storage-engine=NDBCLUSTER

[mysql_cluster]

2.2.2. SQL节点-SQLNODE 2.2.2.1. 初始化MySQL数据库

再安装完数据库后会提示改数据库登录密码

设置数据库密码为‘123456’执行:

Mysqladmin –u root password '123456'

2.2.2.2. 配置配置文件

SQL节点的主要配置文件是/etc/my.cnf

skip-name-resolve

2.2.3. 数据节点-DATANODE

2.2.4. 配置阶段注意事项

在/ect/my.cnf文件中default-storage-engine=NDBCLUSTER表示是默认数据库引擎,若不加这句话,在数据库建表语句后面都必须加上ENGINE=NDBCLUSTER;

2.3. 启动阶段 2.3.1. 管理节点-MANAGEMENTNODE

输入命令ndb_mgmd –f /var/lib/mysql-cluster/config.ini

自启动设置

需要每次开机自动启动管理节点服务,按照如下步骤执行

2.3.2. SQL节点-SQLNODE

输入命令service mysql restart

如果使用的是RPM包安装的,mysql服务会自动启动,可以使用如下命令进行检查:

Chkconfig –list mysql

如果是使用源代码进行安装的,可以使用如下命令使之自启动:

Echo /usr/local/mysql/mysqld_safe –user=mysql&amp; &amp;gt;&amp;gt; /etc/rc.d/rc.local

2.3.3. 数据节点-DATANODE

输入命令ndbd(注意第一次启动时输入:ndbd--initial)

2.4. 群集启动状况检查

所有群集节点都启动之后,可以使用如下命令查看群集状态

ndb_mgm –e show

MySQL集群(三节点)

上图数据节点的启动状态都在启动中。

MySQL集群(三节点)

上图两个节点都已启动。

3. 群集数据库的创建和使用 3.1. 建立数据库

在管理节点上启动mysql服务:

进入mysql数据库:

输入mysql–uroot–p

输入密码123456进入数据库

创建数据库

MySQL集群(三节点)

建立一个表做测试

MySQL集群(三节点)

上述操作可以看到数据能查询出来;

3.2. 连接到数据库

在数据库中输入下面两行命令实现数据库远程访问功能。

mysql&amp;gt;grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

QueryOK,0 rows affected (0.00sec)

mysql&amp;gt;flush privileges;

4. 群集功能验证 4.1. 群集功能目标

在集群正常运行过程,当一个数据节点断掉后不影响数据库的正常使用。断掉的节点启动后能自动完成数据同步。

4.2. 群集故障转移

模拟数据node2断掉后集群功能的测试及数据查询测试

拔掉数据node2(数据节点2)的网线。

进去管理节点查看集群状态

MySQL集群(三节点)

Node2节点已经不能连接了。然后进去mysql再次查询:

MySQL集群(三节点)

数据成功查询得到。

下面模拟两个数据节点同时都断掉后集群功能测试及数据查询测试

我们将node1、node2的网线全部拔掉。

查看集群显示情况

MySQL集群(三节点)

上述可以看到数据节点都没有连接了。

下面进行数据查询

MySQL集群(三节点)

可以看到数据无法查询,并出项了相应的集群错误提示。

4.3. 群集故障节点恢复

恢复一个数据节点后集群功能及数据查询功能的测试

插上node1(ip为10.10.10.22)数据节点的网线并重启该机上的ndbd。

MySQL集群(三节点)

进入任意一台数据节点机器输入:ndbd启动数据节点服务。

MySQL集群(三节点)
MySQL集群(三节点)

上图显示已有一个节点进入启动状态。待启动完成后进去mysql再次查询:

数据成功查询得到。验证了集群故障恢复后数据读写恢复正常。

4.4. 集群故障过程中产生的数据,节点回复后的数据同步。

测试目的:

在集群中一个节点断掉到它重新启动这段时间的所有数据操作,会在该节点启动后自动完成数据同步。

步骤:

断掉数据节点1并在数据库服务中执行相应的数据插入操作。

MySQL集群(三节点)

断掉节点1后查看集群服务。

MySQL集群(三节点)

显示数据库中数据情况:

MySQL集群(三节点)

另一个数据节点并执行ndbd命令:

MySQL集群(三节点)

然后断掉数据节点2。查看集群状态:

MySQL集群(三节点)

验收数据是否已同步,进如mysql数据库服务进行数据查询。

MySQL集群(三节点)

数据仍能查询到,说明在故障恢复后mysql集群完成了数据同步。