1. 程式人生 > >mysql cluster第一次嘗試

mysql cluster第一次嘗試

1.本人一開始是想用主從一致來作為資料庫基礎的,後來發現主從一致,如果他們之間的通訊斷了,對整個系統來說是致命的。之前的方案是資料庫讀寫分離。現在的方案是資料庫叢集,其實他們之間的聯絡也是主從一致,但是數量比較多,而且當其中一個斷了聯絡之後,可以在下次連線的時候進行恢復。然後我選擇的是mysql cluster

2.期間參照很多部落格:http://blog.csdn.net/l1028386804/article/details/53074306,http://www.linuxidc.com/Linux/2016-02/128056.htm,https://segmentfault.com/a/1190000003715950?_ea=338410

其實裡面寫了都差不多,然後我自己總結歸納一下

3.我用的是2臺虛擬機器(ubuntu)

192.168.0.106管理節點,還有資料節點

192.168.0.107資料節點

4.先使用root的身份,sudo su,輸入密碼進入

然後都要關閉防火牆,ufw disable

5.解除安裝本地的mysql,因為我們要下載另一個自帶mysql的,不然會衝突

6.解壓gz

cd /root/Downloads
tar -xvzf mysql-cluster-gpl-7.3.4-linux-glibc2.5-x86_64.tar.gz
mv mysql-cluster-gpl-7.3.4-linux-glibc2.5-x86_64 /usr/local/mysql
注意了,第二步很關鍵,因為mysql在linux系統裡面是預設存在/usr/local/mysql裡面的

7.建立mysql使用者

useradd mysql

chown -R mysql:mysql /usr/local/mysql/

安裝mysql

cd /usr/local/mysql/scripts

./mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql  
8.配置管理節點
mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
gedit config.ini

配置完安裝管理節點
cp /usr/local/mysql/bin/ndb_mgm* /usr/local/bin
cd /usr/local/bin
chmod +x ndb_mgm*
叢集的很多東西都和ndb_mgm*有關,然後上面這樣做是為了可以直接在命令列呼叫ndb_mgm等等命令,不用每次都cd到相應的檔案再./ndb_mgm等等

啟動管理節點

ndb_mgmd -f /var/lib/mysql-cluster/config.ini
如果有修改要
ndb_mgmd -f /var/lib/mysql-cluster/config.ini --reload 
下面從其他部落格截圖的,就舉個例子


如果裡面有出現error的,是config.ini這配置檔案出錯,自己改改。其他的warning都是沒問題的

檢視1186埠是否已經開啟,開啟表示你之前的東西都ojbk了。

# netstat -langput | grep mgm
tcp        0      0 0.0.0.0:1186                0.0.0.0:*                   LISTEN      3427/ndb_mgmd       
tcp        0      0 127.0.0.1:45251             127.0.0.1:1186              ESTABLISHED 3427/ndb_mgmd       
tcp        0      0 127.0.0.1:1186              127.0.0.1:45251             ESTABLISHED 3427/ndb_mgmd

下面是用ndb_mgm -e show顯示叢集的狀態(旁白:抄襲的,就舉個例子而已)


9.配置資料節點

資料庫預設的配置檔案儲存在/etc/my.cnf

所以配置my.cnf

[mysqld]
 ndbcluster
 datadir=/usr/local/mysql/data
 basedir=/usr/local/mysql
 socket=/tmp/mysql.sock
 port=3306
 ndb-connectstring=192.168.0.106  ---管理節點ip
 [mysql_cluster]
 ndb-connectstring=192.168.0.106  ---管理節點ip
注意了上面datadir要根據自己實際去修改哦


啟動資料節點(這個是在之前下載了mysql cluster等等操作之後才做的)

/usr/local/mysql/bin/ndbd --initial

會顯示上面類似這樣的圖案,如果顯示retry 然後12 11 10 。。。這樣是你這個管理節點的1186埠沒有開啟,自己百度

上面的意思是什麼,是這個資料節點在管理節點裡面配置是id=3,然後啟動了

如果你跟我一樣把管理節點作為資料節點,那麼管理節點也要 執行

/usr/local/mysql/bin/ndbd --initial
啟動sql節點的是
/usr/local/mysql/bin/mysqld_safe  --user=mysql &
我沒試過,你們自己玩

10.管理節點可以看下叢集的狀態

ndb_mgm -e show



注意瞭如果裡面顯示starting,證明還在啟動,或者操作錯誤。要用上面說的啟動,才會連線

11.最後是你們自己去連線資料庫試下是不是會同步。然後我發現在管理節點的不會同步到資料節點,資料節點的會管理節點。也不知道對不對,自己試試。還有注意建立資料表的時候要用engine=ndbcluster,才會同步起來。這個很重要哦

然後有關bug或者知識充電的

在安裝mysql的時候回出現少了個libaio.so.1,

sudo apt-get install libaio-dev
用上面這個解決

這個是手動安裝mysql,沒有給你中途去設定密碼的。你用mysql -u root mysql

可以直接進去mysql,然後

update user set password=password('密碼');
flush privileges
第二個是使得修改生效
mysql -uroot -p

輸入自己剛剛設定的密碼進去了。enjoy it