MySQL Cluster 不支持windows
之前的說法是max版支持集群,standard版不支持,但是官方下載點里已經看不出任何關于max,standard的標志。官方網站上又說5.0版本已經包含了MySQL Cluster,所以還是下了個5.0的試試,結果是可以的。
基本的安裝:
linux下官方網站的安裝說明還是挺明確的,一步一步做就是了。
遇到了一個問題與這篇文章一模一樣:http://www.91linux.com/html/linux_pub/fedora/20071114/8195.html
按它的方法修改之后再次
cd /usr/local/mysql
bin/mysqld_safe --user=mysql &
Starting mysqld daemon with databases from /var/lib/mysql
看到上面這一行說明啟動成功。
修改密碼:
bin/mysqladmin -u root password yourpassword
允許遠程訪問:
bin/mysql -u root -p
grant all on *.* to root@"202.11.10.253" Identified by "dboomysql"
允許地址202.11.10.253上用root用戶,密碼dboomysql來連接mysql的所有數據庫,付給所有權限。
實質上是修改了自帶的database:mysql中user這一張表,與PostgreSQL需要修改配置文件相比還是方便一些。
另外就是MySQL的GUI客戶端(MySQL Administrator)也比PostgreSQL的漂亮很多。
停止MySQL:
bin/mysqladmin -u root shutdown -p
安裝完成后,按照這篇文章配置雙機互備:
http://hi.baidu.com/%CA%AB%D5%B9/blog/item/3b99dbc48140f7ca38db49f7.html
但是這篇文章有筆誤:
四、初始化集群
在Server1中
# ndbd --nodeid=3 --initial
在Server2中
# ndbd --nodeid=4 --iniitial
應該改為——
四、初始化集群
在Server1中
# ndbd --ndb_nodeid=3 --initial
在Server2中
# ndbd --ndb_nodeid=4 --initial
這樣的集群配置兩臺機器都是一樣的,所以有2個管理節點,2個SQL節點,2個數據節點。集群的驗證:從任何一臺機器登上去操作數據都能雙寫。
ndb_mgm -e show
可以看到集群節點的信息。
從官方網站上看到的例子都是用了多于3臺的機器來做的集群,僅用兩臺來做的方法好像是大家特意這么做的。
盡管集群配置完畢,但是應用程序與數據庫建立連接不能使用其中任何一臺機器的真實IP,否則一旦該機器網絡連接出問題還是不行,所以還是要給DB集群的機器配置虛擬IP以供外部訪問。
遇到過的問題:
無法mysqld_safe啟動,也找不到日志
解決方法:加啟動參數以指定日志
mysqld_safe --log-error=/var/log/mysqld.log
可以查看到錯誤日志了。
[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
沒轍,google唄,好像是系統數據庫mysql里host表的權限有問題什么的,而mysql這個庫是之前安裝時初始化過的。
解決方法:刪除data,重新install_db
rm -rf /usr/local/mysql/data
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .
bin/mysqld_safe --log-error=/var/log/mysqld.log --ndb_nodeid=5 --user=mysql &

啟動成功了。
btw, mysql官方網的forum好像不能“平板顯示”,好不方便。
關閉Cluster,在管理節點所在的機器上:
/usr/local/mysql/ndb_mgm -e shutdown
關閉SQL節點的mysqld服務:
/usr/local/mysql/bin/mysqladmin -uroot shutdown