MySQLd servers initialization
The two MySQLd servers need to have their DB initialized (they need to know at least who users are and who can connect from). For this purpose we use the install_db script:
# $NODE1_HOME/scripts/mysql_install_db –force –datadir=$NODE1_DATADIR –basedir=$NODE1_HOME
$NODE2_HOME/scripts/mysql_install_db –force –datadir=$NODE2_DATADIR –basedir=$NODE2_HOME
Starting nodes
It is now the time to start the management node:
# $MGMT_BIN/ndb_mgmd -f $MGMT_ETC/config.ini #The mgmt should start
# less $MGMT_VAR/lib/mysql-cluster/ndb_1_cluster.log #Check the log for errors
Now we need to start the data nodes:
# cd $NODE1_NDBD_DATADIR
# $NODE1_BIN/ndbd –initial -c [MGMT_IP_ADDRESS] –bind-address=[FIRST_NODE_IP_ADDRESS]
# cd $NODE2_NDBD_DATADIR
# $NODE2_BIN/ndbd –initial -c [MGMT_IP_ADDRESS] –bind-address=[SECOND_NODE_IP_ADDRESS]
Please note the –initial parameter used as argument to the ndbd command: this is needed only for the very first run… omit it next time!
Now the first check: we ask the MGMT console the cluster status:
# $MGMT_BIN/ndb_mgm -c [MGMT_IP_ADDRESS] -e show
Connected to Management Server at: 10.145.2.3:1186
Cluster Configuration
———————
[ndbd(NDB)] 2 node(s)
id=2 @10.145.2.33 (mysql-5.1.23 ndb-6.2.15, Nodegroup: 0, Master)
id=3 @10.145.2.34 (mysql-5.1.23 ndb-6.2.15, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.145.2.3 (mysql-5.1.23 ndb-6.2.15)
[mysqld(API)] 2 node(s)
id=4 (not connected, accepting connect from any host)
id=5 (not connected, accepting connect from any host)
You should see something similar with your IPs: note that we actually see the two datanodes just started and the mgmt node.
At the end we need to start the two MySQLd that acts as frontend:
# $NODE1_BIN/mysqld –defaults-file=$NODE1_/my.cnf.master &
# $NODE2_BIN/mysqld –defaults-file=$NODE2_ETC/my.cnf &
and executing the query of the mgmt luster console we should now see all nodes:
# $MGMT_BIN/ndb_mgm -c [MGMT_IP_ADDRESS] -e show
Connected to Management Server at: 10.145.2.3:1186
Cluster Configuration
———————
[ndbd(NDB)] 2 node(s)
id=2 @10.145.2.33 (mysql-5.1.23 ndb-6.2.15, Nodegroup: 0, Master)
id=3 @10.145.2.34 (mysql-5.1.23 ndb-6.2.15, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.145.2.3 (mysql-5.1.23 ndb-6.2.15)
[mysqld(API)] 2 node(s)
id=4 @10.145.2.3 (mysql-5.1.23 ndb-6.2.15)
id=5 @10.145.2.3 (mysql-5.1.23 ndb-6.2.15)
If you see something different then probably you have a problem: please look at log files that you can find in $NODE1_VAR/log or $NODE2_VAR/log. If you provide as much information as possible I’ll try to help you out.

Hi,
Thanks a lot. This demonstration is very useful to me and it is working fine. I have installed and tested the mysql clusters in my single linux machine.
Very useful………………..
Hi Karuna,
many thanks for your feedback: I tried all these steps for a clean installation but I’m also the writer of this tutorial
Bye
Apiero
Hi..
I am facing problem after completing cluster configuration, cluster runs properly but i dont see “Master” in [ndbd(NDB)] 2 nodes, both nodes show:
[ndbd(NDB)] 2 node(s)
id=2 @192.168.42.174 (mysql-5.1.23 ndb-6.2.15, starting, Nodegroup: 0)
id=3 @192.168.42.175 (mysql-5.1.23 ndb-6.2.15, starting, Nodegroup: 0)
I am using Redhat Enterprise 5.
Please Help
Hi,
did you verify that the firewall was disabled? Maybe it is blocking some ports
Try, as root, with:
/etc/init.d/iptables stop
/etc/init.d/ip6tables stop
Please let me know if it works or not.
Bye
Apiero
when trying to run the deamon in the final step get the following error msg:
/usr/lib/mysql_cluster/node_1/bin/mysqld: Table ‘mysql.plugin’ doesn’t exist
090122 18:01:18 [ERROR] Can’t open the mysql.plugin table. Please run mysql_upgrade to create it.
090122 18:01:18 InnoDB: Started; log sequence number 0 46409
090122 18:01:18 [Note] Starting Cluster Binlog Thread
090122 18:01:18 [ERROR] Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist
any idea why?
Hi Kagan,
did you use the exact versions of MySQL that I did? It looks like you missed the first part of page 6 (http://www.brucalipto.org/linux/how-to-install-a-mysql-cluster/6).
Please let me know if it works or not.
Bye
Apiero
Hello webmaster
I would like to share with you a link to your site
write me here preonrelt@mail.ru
hi mate, i’ve managed to get almost everything working..
instead of doing everything on one host, i did it with 3 VMs, one is management, and 2 nodes/storage.
I got the nodes to connect without problems. but i can’t get the mysql database to connect. any ideas?
Cluster Configuration
———————
[ndbd(NDB)] 2 node(s)
id=2 @172.12.13.105 (Version: 7.0.6, starting, Nodegroup: 0)
id=3 @172.12.13.106 (Version: 7.0.6, starting, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @mgm01 (Version: 7.0.6)
[mysqld(API)] 2 node(s)
id=4 (not connected, accepting connect from any host)
id=5 (not connected, accepting connect from any host)
thanks
Hi.
Do you think is it better a cluster or a replication (1 master – n slave) configuration in a situation of an high load website?
And have you ever tried mysql proxy as loadbalancer?
Hi,
I think that in a situation of an high load website a cluster would be better but keep in mind that the MySQL cluster has many “limitation”: not really limitations but its own rules. Keep in mind that MySQL is very fast so maybe a simple node could be sufficient.
I tried to look at MySQL proxy as loadbalancer but I did not understand how does it work: actually if I would need to setup something “big” with MySQL I would try MMM (Multi-Master Replication Manager) for MySQL[1].
Please let me know what was your choice!
Bye
Apiero
[1]http://mysql-mmm.org/
Hi,
(still alive ?)
im having a question …
i am running the ndb managment server and the mysql server one on the same server and the mysql server 2 on a second server.
if the server 1 (with mysql1 and mgmt server) crashes > there is data loss > what will append when i will restart the whole servers ?
the cluster system is only transmitting the queries ? isn’t it?