Home > Database > Mysql Tutorial > MySQL集群在IBM服务器上配置安装详解_MySQL

MySQL集群在IBM服务器上配置安装详解_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-01 14:02:10
Original
1312 people have browsed it

IBMMysql集群IBM服务器服务器集群mysql安装

本文只是介绍安装和配置,关于一些名词和原理,请参考MySQL手册。

一.环境:

IBM x3560

Vmware esx 4.0

centos 5.3 –32bit

MySQL-max-5.0.24-linux-i686.tar.gz

为了快速搭建所需环境,我选择了一台IBM服务器安装了Vmware esx 4.0,用vm的ovf模板部署了3台centos,一台作为管理(MGM),节点两台作为SQL节点和数据节点。计算机名和IP地址如下:

DB1    192.168.20.201

DB2    192.168.20.202

MGM   192.168.20.203

二,在DB1和DB2上部署MySQL(配置过程相同)

听说MySQL5.1以及集成了MySQL集群功能,但是看了好多资料(包括MySQL5.1手册),都没有介绍安装配置的方法,很郁闷,最后还是选择了MySQL-max-5.0.24这个版本,MySQL-max是二进制的包,所以也省去了安装的麻烦,只需要几步简单的设置。

1, 建立MySQL用户组,MySQL-max-5.0.24-linux-i686.tar.gz解压后移动到/usr/local/MySQL

<ol class="dp-xml">
<li class="alt"><span><span>[root@db1 software]#groupadd MySQL  </span></span></li>
<li><span>[root@db1 software]#useradd –g MySQL MySQL  </span></li>
<li class="alt"><span>[root@db1 software]# tar  -zxf  MySQL-max-5.0.24-linux-i686.tar.gz  </span></li>
<li><span>[root@db1 software]#mv  MySQL-max-5.0.24-linux-i686  MySQL  </span></li>
<li class="alt"><span>[root@db1 software]#mv MySQL /usr/local/MySQL </span></li>
</ol>
Copy after login

2, 拷贝MySQL配置文件到/etc/下,初始化数据库,设置目录权限,启动MySQL

<ol class="dp-sql">
<li class="alt"><span><span>[root@db1 software]# cd /usr/</span><span class="keyword"><strong><font color="#006699">local</font></strong></span><span>/MySQL/  </span></span></li>
<li><span>[root@db1 MySQL]# cp support-files/my-medium.cnf /etc/my.cnf  </span></li>
<li class="alt">
<span>[root@db1 MySQL]# scripts/MySQL_install_db </span><span class="comment"><font color="#008200">--user=MySQL </font></span><span> </span>
</li>
<li><span>[root@db1 MySQL]#chown -R root .  </span></li>
<li class="alt"><span>[root@db1 MySQL]#chown -R MySQL data  </span></li>
<li><span>[root@db1 MySQL]#chgrp -R MySQL .  </span></li>
<li class="alt">
<span>[root@db1 MySQL]# bin/MySQLd_safe </span><span class="comment"><font color="#008200">--user=MySQL &</font></span><span> </span>
</li>
</ol>
Copy after login

3, 将MySQL写入服务,初始化MySQL的root密码

<ol class="dp-sql">
<li class="alt"><span><span>[root@db1 MySQL]# cp support-files/MySQL.server /etc/rc.d/init.d/MySQLd  </span></span></li>
<li>
<span>[root@db1 MySQL]# chkconfig </span><span class="comment"><font color="#008200">--add MySQLd </font></span><span> </span>
</li>
<li class="alt">
<span>[root@db1 MySQL]# bin/MySQLadmin -u root </span><span class="keyword"><strong><font color="#006699">password</font></strong></span><span> 123456 </span>
</li>
</ol>
Copy after login

4, 停止MySQL服务,修改配置文件

<ol class="dp-sql">
<li class="alt"><span><span>[root@db1 MySQL]# service MySQLd stop  </span></span></li>
<li><span>[root@db1 MySQL]# vi /etc/my.cnf </span></li>
</ol>
Copy after login

在最下面添加内容:

<ol class="dp-sql">
<li class="alt"><span><span>[MySQLD]  </span></span></li>
<li><span>ndbcluster  </span></li>
<li class="alt"><span>ndb-connectstring=192.168.20.203  </span></li>
<li><span>   </span></li>
<li class="alt"><span>[MySQL_CLUSTER]  </span></li>
<li><span>ndb-connectstring=192.168.20.203 </span></li>
</ol>
Copy after login

保存退出,先不要启动MySQL服务

三,部署管理节点

管理节点的配置也很简单,但它是MySQL cluster配置中最关键的一步。

1, 解压MySQL-max-5.0.24-linux-i686.tar.gz包,拷贝包里bin目录下的ndb_mgm和ndb_mgmd两文件到/usr/bin/目录中(看一下是否具有可执行权限)。

<ol class="dp-sql"><li class="alt"><span><span>[root@mgm MySQL-</span><span class="keyword"><strong><font color="#006699">max</font></strong></span><span>-5.0.24-linux-i686]# cd bin/ndb_mgm* /usr/bin </span></span></li></ol>
Copy after login

2, 创建管理节点数据库目录,并且在此目录中建立配置文件config.ini

<ol class="dp-xml">
<li class="alt"><span><span>Mkdir /usr/local/MySQL-cluster  </span></span></li>
<li><span>Cd /usr/local/MySQL-cluster  </span></li>
<li class="alt"><span>Vi config.ini </span></li>
</ol>
Copy after login

添加如下内容:

<ol class="dp-xml">
<li class="alt"><span><span>[NDBD DEFAULT]  </span></span></li>
<li>
<span class="attribute"><font color="#ff0000">NoOfReplicas</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">2</font></span><span> </span>
</li>
<li class="alt">
<span class="attribute"><font color="#ff0000">DataMemory</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">200M</font></span><span> </span>
</li>
<li>
<span class="attribute"><font color="#ff0000">IndexMemory</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">100M</font></span><span> </span>
</li>
<li class="alt"><span>   </span></li>
<li><span>[TCP DEFAULT]  </span></li>
<li class="alt">
<span class="attribute"><font color="#ff0000">portnumber</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">2202</font></span><span> </span>
</li>
<li><span>   </span></li>
<li class="alt"><span>[NDB_MGMD]  </span></li>
<li><span>   </span></li>
<li class="alt">
<span class="attribute"><font color="#ff0000">hostname</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">192</font></span><span>.168.20.203  </span>
</li>
<li>
<span class="attribute"><font color="#ff0000">datadir</font></span><span>=/usr/local/MySQL-cluster  </span>
</li>
<li class="alt"><span>   </span></li>
<li><span>[NDBD]  </span></li>
<li class="alt"><span>   </span></li>
<li>
<span class="attribute"><font color="#ff0000">hostname</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">192</font></span><span>.168.20.201  </span>
</li>
<li class="alt">
<span class="attribute"><font color="#ff0000">datadir</font></span><span>=/usr/local/MySQL/data  </span>
</li>
<li><span>   </span></li>
<li class="alt"><span>[NDBD]  </span></li>
<li><span>   </span></li>
<li class="alt">
<span class="attribute"><font color="#ff0000">hostname</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">192</font></span><span>.168.20.202  </span>
</li>
<li>
<span class="attribute"><font color="#ff0000">datadir</font></span><span>=/usr/local/MySQL/data  </span>
</li>
<li class="alt"><span>   </span></li>
<li><span>[MySQLD]  </span></li>
<li class="alt">
<span class="attribute"><font color="#ff0000">hostname</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">192</font></span><span>.168.20.201  </span>
</li>
<li><span>   </span></li>
<li class="alt"><span>[MySQLD]  </span></li>
<li>
<span class="attribute"><font color="#ff0000">hostname</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">192</font></span><span>.168.20.202 </span>
</li>
</ol>
Copy after login

保存退出

四,MySQL cluster的启动

MySQL cluster的启动顺序:管理节点--数据节点-SQL节点。

1,[root@mgm MySQL-cluster]# ndb_mgmd -f ./config.ini

如果没有提示,表示启动成功,Ps -aux查看进程,看是否已经启动

<ol class="dp-xml"><li class="alt"><span><span>root  4700  0.0 0.6   5984 1668 ?    Ssl 14:20   0:00 ndb_mgmd -f ./config.ini </span></span></li></ol>
Copy after login

2,分别在DB1和DB2上启动数据节点

 

<ol class="dp-xml"><li class="alt"><span><span>[root@db1 MySQL]# bin/ndbd –initial </span></span></li></ol>
Copy after login

问题出来了:

提示:

<ol class="dp-xml">
<li class="alt"><span><span>[root@db1 MySQL]# bin/ndbd --initial  </span></span></li>
<li>
<span>Unable to connect with connect string: </span><span class="attribute"><font color="#ff0000">nodeid</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">0</font></span><span>,192.168.20.203:1186  </span>
</li>
<li class="alt"><span>Retrying every 5 seconds. Attempts left: 12 11 10 9 8 7 6 5 4 3 2 1, failed.  </span></li>
<li>
<span class="attribute"><font color="#ff0000">error</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">2350</font></span><span> </span>
</li>
<li class="alt"><span>2010-05-05 14:21:21 [ndbd] INFO     -- Error handler restarting system  </span></li>
<li><span>2010-05-05 14:21:21 [ndbd] INFO     -- Error handler shutdown completed - exiting  </span></li>
<li class="alt">
<span class="attribute"><font color="#ff0000">sphase</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">0</font></span><span> </span>
</li>
<li>
<span class="attribute"><font color="#ff0000">exit</font></span><span>=-1 </span>
</li>
</ol>
Copy after login

在网上找答案,出这个问题的人还真不少,而且答案五花八门,统统试了一遍,还是不行,问题到底出在哪里呢?

查看错误日志,内容如下:

<ol class="dp-xml">
<li class="alt"><span><span> [root@db1 MySQL]# more ndb_pid4968_error.log  </span></span></li>
<li><span>Current byte-offset of file-pointer is: 568                        </span></li>
<li class="alt"><span>   </span></li>
<li><span>Time: Wednesday 5 May 2010 - 14:17:25  </span></li>
<li class="alt"><span>Status: Permanent error, external action needed  </span></li>
<li><span>Message: Invalid configuration received from Management Server (Configuration error)  </span></li>
<li class="alt"><span>Error: 2350  </span></li>
<li><span>Error data: Could not connect to ndb_mgmd  </span></li>
<li class="alt"><span>Error object:  </span></li>
<li><span>Program: bin/ndbd  </span></li>
<li class="alt"><span>Pid: 4968  </span></li>
<li>
<span>Trace: </span><strong><font color="#006699"><span class="tag"><span class="tag-name">no</span></span></font></strong><span> tracefile</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> </span>
</li>
<li class="alt"><span>Version: Version 5.0.24  </span></li>
<li><span>***EOM*** </span></li>
</ol>
Copy after login

看带下划线处,不能连接到管理节点,我的管理节点启动是ok的啊,突然一下明白了,防火墙是开着的(系统默认是开启的),关掉防火墙和SELinux,重新ndbd –initial,启动成功

3, 启动SQL节点上的MySQL服务

<ol class="dp-xml"><li class="alt"><span><span>Service MySQLd start </span></span></li></ol>
Copy after login

4,全部节点都启动成功后,在MGM节点上用ndb_mgm工具的show命令查看群集的状态    

<ol class="dp-xml">
<li class="alt"><span><span>        [root@mgm ~]# ndb_mgm  </span></span></li>
<li><span>-- NDB Cluster -- Management Client --  </span></li>
<li class="alt">
<span>ndb_mgm</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> show  </span>
</li>
<li><span>Connected to Management Server at: localhost:1186  </span></li>
<li class="alt"><span>Cluster Configuration  </span></li>
<li><span>---------------------  </span></li>
<li class="alt"><span>[ndbd(NDB)]     2 node(s)  </span></li>
<li>
<span class="attribute"><font color="#ff0000">id</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">2</font></span><span>    @192.168.20.201 (Version: 5.0.24, Nodegroup: 0, Master)  </span>
</li>
<li class="alt">
<span class="attribute"><font color="#ff0000">id</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">3</font></span><span>    @192.168.20.202 (Version: 5.0.24, Nodegroup: 0)  </span>
</li>
<li><span>         </span></li>
<li class="alt"><span>[ndb_mgmd(MGM)] 1 node(s)  </span></li>
<li>
<span class="attribute"><font color="#ff0000">id</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">1</font></span><span>    @192.168.20.203 (Version: 5.0.24)  </span>
</li>
<li class="alt"><span>         </span></li>
<li><span>[MySQLd(API)]   2 node(s)  </span></li>
<li class="alt">
<span class="attribute"><font color="#ff0000">id</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">4</font></span><span>    @192.168.20.201 (Version: 5.0.24)  </span>
</li>
<li>
<span class="attribute"><font color="#ff0000">id</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">5</font></span><span>    @192.168.20.202 (Version: 5.0.24) </span>
</li>
</ol>
Copy after login

看蓝色标示的字段,可以看到管理节点,sql节点和数据节点,还有一个连接端口。

五.MySQL cluster的测试

声明一点,要使用MySQL cluster,表的存储引擎必须是ndb的。

在DB1(192.168.20.201)中创建表,插入数据:

<ol class="dp-xml">
<li class="alt"><span><span> MySQL</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> use test  </span></span></li>
<li><span>Database changed  </span></li>
<li class="alt"><span>   </span></li>
<li>
<span>MySQL</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> create table mingxing(name char(3))</span><span class="attribute"><font color="#ff0000">engine</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">ndb</font></span><span>;  </span>
</li>
<li class="alt"><span>Query OK, 0 rows affected (0.57 sec)  </span></li>
<li><span>   </span></li>
<li class="alt">
<span>MySQL</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> insert into mingxing value('jay'),('cyl'),('ldh');  </span>
</li>
<li><span>Query OK, 3 rows affected (0.04 sec)  </span></li>
<li class="alt"><span>Records: 3 Duplicates: 0 Warnings: 0 </span></li>
</ol>
Copy after login

然后再DB2(192.168.20.202)上看到了刚才创建的表和表里的数据

<ol class="dp-xml">
<li class="alt"><span><span>MySQL</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> use test  </span></span></li>
<li><span>Database changed  </span></li>
<li class="alt">
<span>MySQL</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> show tables;  </span>
</li>
<li><span>+----------------+  </span></li>
<li class="alt"><span>| Tables_in_test |  </span></li>
<li><span>+----------------+  </span></li>
<li class="alt"><span>| mingxing      |  </span></li>
<li><span>+----------------+  </span></li>
<li class="alt"><span>1 row in set (0.01 sec)  </span></li>
<li><span>   </span></li>
<li class="alt">
<span>MySQL</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> select * from mingxing;  </span>
</li>
<li><span>+------+  </span></li>
<li class="alt"><span>| name |  </span></li>
<li><span>+------+  </span></li>
<li class="alt"><span>| jay |  </span></li>
<li><span>| cyl |  </span></li>
<li class="alt"><span>| ldh |  </span></li>
<li><span>+------+  </span></li>
<li class="alt"><span>3 rows in set (0.00 sec) </span></li>
</ol>
Copy after login

到此,MySQL的安装和配置基本完成。

注意: 如果在db1上创建一个数据库是不能同步到db2上去的,两边需要有相同名字的库名,库中的数据才能同步过去

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template