共計 3201 個字符,預計需要花費 9 分鐘才能閱讀完成。
本篇內容主要講解“MySQL 數據庫集群的操作”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“MySQL 數據庫集群的操作”吧!
2 臺服務器的 MySQL 集群。并且實現任意一臺服務器出現問題或宕機時 MySQL 依然能夠繼續運行。
2MySQL2MySQL3VMWare
3
Server2MySQLServer3Server3MySQLServer3Server3
二、在 Server1 和 Server2 上安裝 MySQL
[url]http://www.mysql.com[/url]mysql-max-4.1.9-pc-linux-gnu-i686.tar.gzmaxMySQLStandardServer1Server2
三、安裝并配置管理節點服務器(Server3)
===================================== 作為管理節點服務器,Server3 需要 ndb_mgm 和 ndb_mgmd 兩個文件:從 [url]http://www.mysql.com[/url] 上下載 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*
# mv ndb_mg* /usr/bin/
# cd
# rm -rf /usr/src/mysql-mgm 現在開始為這臺管理節點服務器建立配置文件:
# mkdir /var/lib/mysql-cluster
# cd /var/lib/mysql-cluster
# vi config.ini 在 config.ini 中添加如下內容:
[NDBD DEFAULT]
NoOfReplicas=2
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
# Managment Server
[NDB_MGMD]
HostName=192.168.0.3 #管理節點服務器 Server3 的 IP 地址
# Storage Engines
[NDBD]
HostName=192.168.0.1 #MySQL 集群 Server1 的 IP 地址
DataDir= /var/lib/mysql-cluster
[NDBD]
HostName=192.168.0.2 #MySQL 集群 Server2 的 IP 地址
DataDir=/var/lib/mysql-cluster
# 以下 2 個 [MYSQLD] 可以填寫 Server1 和 Server2 的主機名。
# 但為了能夠更快的更換集群中的服務器,推薦留空,否則更換服務器后必須對這個配置進行更改。
[MYSQLD]
[MYSQLD]保存退出后,啟動管理節點服務器 Server3:
# ndb_mgmd 啟動管理節點后應該注意,這只是管理節點服務,并不是管理終端。因而你看不到任何關于啟動后的輸出信息。
四、配置集群服務器并啟動 MySQL
============================= 在 Server1 和 Server2 中都需要進行如下改動:
# vi /etc/my.cnf
[mysqld]
ndbcluster
ndb-connectstring=192.168.0.3 #Server3 的 IP 地址
[mysql_cluster]
ndb-connectstring=192.168.0.3 #Server3 的 IP 地址保存退出后,建立數據目錄并啟動 MySQL:
# mkdir /var/lib/mysql-cluster
# cd /var/lib/mysql-cluster
# /usr/local/mysql/bin/ndbd –initial
# /etc/rc.d/init.d/mysqld start 可以把 /usr/local/mysql/bin/ndbd 加到 /etc/rc.local 中實現開機啟動。注意:只有在第一次啟動 ndbd 時或者對 Server3 的 config.ini 進行改動后才需要使用 –initial 參數!
五、檢查工作狀態
================ 回到管理節點服務器 Server3 上,并啟動管理終端:
# /usr/bin/ndb_mgm 鍵入 show 命令查看當前工作狀態:(下面是一個狀態輸出示例)
[root@mysql3 root]# /usr/bin/ndb_mgm
— NDB Cluster — Management Client —
ndb_mgm show
Connected to Management Server at: localhost:1186
Cluster Configuration
———————
[ndbd(NDB)] 2 node(s)
id=2 @192.168.0.1 (Version: 4.1.9, Nodegroup: 0, Master)
id=3 @192.168.0.2 (Version: 4.1.9, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.0.3 (Version: 4.1.9)
[mysqld(API)] 2 node(s)
id=4 (Version: 4.1.9)
id=5 (Version: 4.1.9)
ndb_mgm
如果上面沒有問題,現在開始測試 MySQL:注意,這篇文檔對于 MySQL 并沒有設置 root 密碼,推薦你自己設置 Server1 和 Server2 的 MySQL root 密碼。在 Server1 中:
# /usr/local/mysql/bin/mysql -u root -p
use test;
CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;
INSERT INTO ctest () VALUES (1);
SELECT * FROM ctest; 應該可以看到 1 row returned 信息(返回數值 1)。如果上述正常,則換到 Server2 上重復上面的測試,觀察效果。如果成功,則在 Server2 中執行 INSERT 再換回到 Server1 觀察是否工作正常。如果都沒有問題,那么恭喜成功!六、破壞性測試
============== 將 Server1 或 Server2 的網線拔掉,觀察另外一臺集群服務器工作是否正常(可以使用 SELECT 查詢測試)。測試完畢后,重新插入網線即可。如果你接觸不到物理服務器,也就是說不能拔掉網線,那也可以這樣測試:在 Server1 或 Server2 上:
# ps aux | grep ndbd 將會看到所有 ndbd 進程信息:
root 5578 0.0 0.3 6220 1964 ? S 03:14 0:00 ndbd
root 5579 0.0 20.4 492072 102828 ? R 03:14 0:04 ndbd
root 23532 0.0 0.1 3680 684 pts/1 S 07:59 0:00 grep ndbd 然后殺掉一個 ndbd 進程以達到破壞 MySQL 集群服務器的目的:
# kill -9 5578 5579 之后在另一臺集群服務器上使用 SELECT 查詢測試。并且在管理節點服務器的管理終端中執行 show 命令會看到被破壞的那臺服務器的狀態。測試完成后,只需要重新啟動被破壞服務器的 ndbd 進程即可:
# ndbd 注意!前面說過了,此時是不用加 –inital 參數的!至此,MySQL 集群就配置完成了!
到此,相信大家對“MySQL 數據庫集群的操作”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!