类型:E-tutorial大小:8.5M语言:中文评分:8.3标签:立即下载正确配置MySQL数据库集群的实际操作步骤,并讲述其概念。如果你对相关的实际操作感兴趣,下面的文章将为你提供相关的知识。一.导言
本文的目的是介绍如何安装和配置基于两台服务器的MySQL数据库集群。而且MySQL在任何服务器出现问题或者宕机的情况下仍然可以运行。
注意:
虽然这是一个基于两台服务器的MySQL集群,但必须有额外的第三台服务器作为管理节点,但该服务器可以在集群启动后关闭。同时需要注意的是,不建议在集群启动后关闭作为管理节点的服务器。虽然理论上可以只基于两台服务器构建MySQL集群,但是一旦一台服务器宕机,集群就无法继续正常工作,从而失去了集群的意义。因此,第三个服务器需要作为管理节点运行。
另外,很多朋友可能没有3台服务器的实际环境,可以考虑在VMWare或者其他虚拟机上进行实验。
让我们假设这三种服务的情况:
服务器1: mysql1.vmtest.net 192 . 168 . 0 . 1服务器2: mysql2.vmtest.net 192 . 168 . 0 . 2服务器: mysql3.vmtest.net 192 . 168 . 0 . 3服务器1和服务器2用作MySQL数据库集群的实际服务器。Server3作为管理节点,要求较低,只需要对Server3的系统进行微小的调整,不需要安装MySQL。Server3可以使用配置较低的计算机,并且可以同时运行其他服务。
其次,在服务器1和服务器2上安装MySQL
注意:必须是MySQL最大版本,标准版不支持集群部署!
以下步骤需要分别在服务器1和服务器2上执行一次
# mv mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz/usr/local/# CD/usr/local/# group add MySQL # user add-g MySQL MySQL # tar-zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz # RM-f mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz # mv MySQL-max-4 . 1 . 9-PC-Linux-GNU-i686 MySQL # CD MySQL # scripts/MySQL _ install _ dbuser=MySQL # chown-R root。# chown -R mysql数据# chgrp -R mysql。# cp支持-files/mysql . server/etc/RC . d/Init . d/MySQL d # chmod x/etc/RC . d/Init . d/MySQL d # chkconfig添加MySQL此时不要启动MySQL!
Iii .安装并配置管理节点服务器(服务器3)
Server3需要两个文件ndb_mgm和ndb_mgmd作为管理节点服务器:
从http://www.mysql.com下载mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
# mkdir/usr/src/MySQL-MGM # CD/usr/src/MySQL-MGM # tar-zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz # RM mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz # CD MySQL-max-4 . 1 . 9-PC-Linux-GNU-i686 # mv bin/ndb _ MGM。# mv bin/ndb_mgmd。# chmod x ndb _ mg * # mvndb _ mg */usr/bin/# CD # RM-RF/usr/src/MySQL-MGM现在开始为此管理节点服务器构建配置文件:
# mkdir/var/lib/MySQL-集群# CD/var/lib/MySQL-集群# viconfig.ini在config.ini中添加以下内容:
[ndbd default]noofrplicas=2[mysqld default][ndb _ mgmd default][TCP default]#管理服务器[ndb _ mgmd]主机名=192.168.0.3 #管理节点服务器Server3的IP地址
#存储引擎[ndbd]主机名=192 . 168 . 0 . 1 # MySQL数据库集群服务器1的IP地址DataDir=/var/lib/MySQL-集群[ndbd]主机名=192 . 168 . 0 . 2 # MySQL集群服务器2的IP地址DataDir=/var/lib/MySQL-集群以下两个[MYSQLD]可以填写服务器1和服务器2的主机名。
但是,为了更快地更换群集中的服务器,建议将其留空,否则更换服务器后必须更改配置。
保存并退出后,启动管理节点服务器服务器3:
# ndb_mgmd启动管理节点后,需要注意的是,这只是管理节点服务,不是管理终端。因此,启动后看不到任何输出信息。
第四,配置集群服务器,启动MySQL
服务器1和服务器2都需要进行以下更改:
# VI/etc/my . CNF[MySQL]ndb cluster ndb-connect string=192 . 168 . 0 . 3 #服务器3的IP地址[MySQL _ cluster]ndb-connect string=192 . 168 . 0 . 3 #服务器3的IP地址
保存退出后,建立数据目录,启动MySQL:
# mkdir/var/lib/MySQL-cluster # CD/var/lib/MySQL-cluster #/usr/local/mysql/bin/ndbdinitial #/etc/RC . d/init . d/mysqldstar可以将/usr/local/MySQL/bin/ndbd添加到/etc
注意:只有在第一次启动ndbd或更改Server3的config.ini后,才需要- initial参数!
动词(verb的缩写)检查工作状态
返回管理节点服务器服务器3,启动管理终端:
# /usr/bin/ndb_mgm键入show命令查看当前工作状态:(以下是状态输出示例)
[root @ MySQL 3 root]#/usr/bin/ndb _ MGMNDB群集管理客户端ndb _ MGM显示已连接到位于: localhost:1186的管理服务器群集配置[ndbd(NDB)] 2个节点id=2 @192.168.0.1(版本: 4.1.9,节点组:主节点)id=3 @192.168.0.2(版本3
如果上面没有问题,现在就开始测试MySQL:
请注意,本文档没有为MySQL设置根密码。建议您自己为服务器1和服务器2设置MySQL根密码。
在服务器1中:
#/usr/local/MySQL/bin/MySQL-u root-p使用测试;CREATE TABLE ctest(I INT)ENGINEER=NDB cluster;插入ctest()值(1);选择*从ctest您应该会看到1行返回消息(返回值1)。
如果以上正常,切换到服务器2,重复上述测试,观察效果。如果成功,在服务器2中插入并切换回服务器1,看看它是否正常工作。
如果没有问题,恭喜成功!
不及物动词破坏性测试
拔下服务器1或服务器2的网线,观察另一台MySQL数据库集群服务器是否正常工作(可以使用SELECT查询测试)。测试完成后,重新插入网线。
如果无法到达物理服务器,也就是说无法拔下网线,也可以这样测试:
在服务器1或服务器2上:
# ps aux | grep ndbd将看到所有ndbd流程信息:
根5578 0.0 0.3 6220 1964?s 03:14 0:00 ndbd root 5579 0.0 20.4 492072 102828?r 0:14 0:04 ndbd root 23532 0.0 0.1 3680 684 pts/1s 07336059 0:00 grep ndbd然后杀死一个ndbd进程来销毁MySQL集群服务器:
# kill -9 5578 5579,然后在另一台集群服务器上使用SELECT查询测试。并且在管理节点服务器的管理终端执行show命令会看到被破坏的服务器的状态。
测试完成后,只需重启受损服务器的ndbd进程即可:
# ndbd注意!正如我之前所说的,此时没有必要添加- inital参数!
至此,MySQL数据库集群配置完毕!