首頁 > 資料庫 > mysql教程 > MySQL集群在IBM服务器上配置安装详解_MySQL

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-06-01 14:02:10
原創
1315 人瀏覽過

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>
登入後複製

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>
登入後複製

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>
登入後複製

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>
登入後複製

在最下面添加内容:

<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>
登入後複製

保存退出,先不要启动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>
登入後複製

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>
登入後複製

添加如下内容:

<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>
登入後複製

保存退出

四,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>
登入後複製

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

 

<ol class="dp-xml"><li class="alt"><span><span>[root@db1 MySQL]# bin/ndbd –initial </span></span></li></ol>
登入後複製

问题出来了:

提示:

<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>
登入後複製

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

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

<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>
登入後複製

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

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

<ol class="dp-xml"><li class="alt"><span><span>Service MySQLd start </span></span></li></ol>
登入後複製

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>
登入後複製

看蓝色标示的字段,可以看到管理节点,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>
登入後複製

然后再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>
登入後複製

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

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

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
CentOS7 安裝Docker後啟動失敗
來自於 1970-01-01 08:00:00
0
0
0
安裝類安裝不了啊
來自於 1970-01-01 08:00:00
0
0
0
全域安裝和本機安裝
來自於 1970-01-01 08:00:00
0
0
0
編譯安裝的nginx如何解除安裝?
來自於 1970-01-01 08:00:00
0
0
0
安裝增強安裝包
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板