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