Debian6配置Mysql集群
Mysql版本:mysql-cluster-gpl-7.1.14-linux-i686-glibc23.tar.gz
操作系統:Debian6.0 虛擬機
192.168.225.131 (MGMD)
192.168.225.133 (NDBD)
192.168.225.134 (NDBD)
192.168.225.135 (MySQLD)
192.168.225.136 (MySQLD)
www.2cto.com
1.每台虛擬機都安裝mysql-cluster
root@debian:/home/john# groupadd mysql
root@debian:/home/john# useradd -g mysql mysql
root@debian:/home/john# tar zxf mysql-cluster-gpl-7.1.14-linux-i686-glibc23.tar.gz
root@debian:/home/john# mv zxf mysql-cluster-gpl-7.1.14-linux-i686-glibc23 /usr/local/mysql
root@debian:/home/john# chown mysql:mysql /usr/local/mysql
root@debian:/home/john# rm mysql-cluster-gpl-7.1.14-linux-i686-glibc23.tar.gz
2.配置MGMD(管理節點192,168.225.131)
創建文件/var/lib/mysql-cluster/config.ini (可以是其他位置或命名)
[NDBD DEFAULT]
NoOfReplicas=2
DataMemory=100M
IndexMemory=100M
[TCP DEFAULT]
portnumber=2202
[NDB_MGMD]
id=1
hostname=192.168.225.131
datadir=/var/lib/mysql-cluster
[NDBD]
id=2
hostname=192.168.225.133
datadir=/usr/local/mysql/ndbdata
www.2cto.com
[NDBD]
id=3
hostname=192.168.225.134
datadir=/usr/local/mysql/ndbdata
[mysqld]
id=4
hostname=192.168.225.135
[mysqld]
id=5
hostname=192.168.225.136
3.配置NDBD(數據節點192.168.225.133, 192.168.225.134)
創建/etc/my.cnf文件,內容如下
[mysqld]
datadir=/usr/local/mysql/ndbdata
[mysql_cluster]
ndb-connectstring = 192.168.225.131 #指向mgmd
4.配置MySQLD(SQL節點192.168.225.135, 192.168.225.136)
創建/etc/my.cnf文件,內容如下
[mysqld]
ndbcluster
ndb-connectstring=192.168.225.131
www.2cto.com
[mysql_cluster]
ndb-connectstring=192.168.225.131
安裝System tables
root@debian:/usr/local/mysql/scripts# mysql_install_db --user=mysql --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
5.以上配置完成無誤之後,啟動管理節點 192.168.225.131
root@debian:/usr/local/mysql/bin# ./ndb_mgmd -f /var/lib/mysql-cluster/config.ini
root@debian:/usr/local/mysql/bin# ./ndb_mgmd
ndb_mgm> show
初次啟動時候,id=2,3,4,5應該都是 not connected。
6.啟動NDB節點和MySQL節點
啟動NDB節點
root@debian:/usr/local/mysql/bin# ./ndbd
啟動MySQL節點
root@debian:/usr/local/mysql/bin# ./mysqld_safe &
此處若啟動出錯,先查看第4步中 安裝System tables是否正確。
7.測試 (MySQLD節點192.168.225.135, 192.168.225.136 上進行)
root@debian:/usr/local/mysql/bin# ln -s /usr/local/mysql/bin/mysql /usr/bin
root@debian:/usr/local/mysql/bin# mysql -uroot test
mysql> create table job(id int auto_increment,name varchar(100)) engine=ndbcluster default charset utf8;
engine=ndbcluster不能少,不然節點無法同步。
在兩個節點中創建表並插入數據,測試結果節點數據已同步...OK
www.2cto.com
8.後續 停止節點 重啟節點
停止ndbd節點
如果所有的數據節點ndbd都停止,SQL節點mysqld會自動都失去連接,但是mysqld進程依然存活,導致重新恢復ndbd之後,mysqld沒法自動恢復
這時候,需要先將mysqld進程殺死,然後重啟mysqld節點。
值得注意的地方
運行/usr/local/mysql/scripts/mysql_install_db --user=mysql
參數--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data & (這點非常重要)
作者 dyyaries