First, installation requirements
Installation Environment: Centos-6.5-32bit
Software Name: mysql-cluster-gpl-7.2.25-linux2.6-i686.tar.gz
Download Address: http://mysql.mirror.kangaroot.net/Downloads/
Package: mysql-cluster-gpl-7.2.25-linux2.6-i686.tar.gz
Package Storage directory:/usr/local
Management node (MGM): 192.168.1.71
Data node 1 (NDBD1): 192.168.1.72
Data Node 2 (NDBD2): 192.168.1.73
SQL Node 1 (SQL1): 192.168.1.74
SQL Node 2 (SQL2): 192.168.1.75
II. Installation and Deployment
1. Before installation: (all node server needs to be implemented)
[ROOT@MGM] #rpm-qa|grep mysql* (MySQL in query system)
[ROOT@MGM] #rpm-e–nodeps mysql-libs-5.1.71-1.el6.i686 ( According to the version of MySQL that I found out.
2. Start deployment: (All node servers need to be executed)
[ROOT@MGM] #groupadd MySQL [
root@mgm] #useradd mysql-g mysql
[ROOT@MGM] #cd/usr/local (packages in this directory, according to their own storage location to enter) C3/>[ROOT@MGM Local] #tar-xvfmysql-cluster-gpl-7.2.25-linux2.6-i686.tar.gz
[ROOT@MGM Local] #mkdir/usr/local/ MySQL (create MySQL directory)
[ROOT@MGM Local] #mvmysql-cluster-gpl-7.2.25-linux2.6-i686/* mysql
[ROOT@MGM Local] #chown -R mysql:mysql mysql/
[ROOT@MGM Local] #cd mysql
[root@mgm MySQL] #scripts/mysql_install_db–user=mysql ( Management and Data nodes execute this command)
#scripts/mysql_install_db–user=mysql–datadir=/var/mysql/data (SQL node executes this command)
Third, cluster configuration
1. Management node Configuration:
[ROOT@MGM MySQL] #mkdir/var/lib/mysql-cluster
[ROOT@MGM] #mkdir/var/mysql
[ROOT@MGM] #mkdir/var/mysql/data
[ROOT@MGM] #mkdit/var/mysql/log
[ROOT@MGM MySQL] #vi/var/lib/mysql-cluster/config.ini (Add the following)
[ndbd DEFAULT]
noofreplicas=2
#[tcp DEFAULT]
#PortNumber =1186
[NDB_MGMD]
#设置管理节点服务器
nodeid=1
hostname=192.168.1.71
Datadir=/var/mysql/data
[ndbd]
nodeid=2
hostname=192.168.1.72
datadir=/var/mysql/data
[NDBD]
nodeid=3
hostname=192.168.1.73
datadir=/var/mysql/data
[MYSQLD]
nodeid=4
hostname=192.168.1.74
[MYSQLD]
nodeid=5
hostname=192.168.1.75
#必须有空的mysqld节点, otherwise the data node is disconnected and started with an error
[MYSQLD]
nodeid=6
[ MYSQLD]
nodeid=7
Copy NDB_MGM, NDB_MGMD, config.ini to Bin directory:
[ROOT@MGM MySQL] #cd/usr/local/mysql/bin
[ROOT@MGM bin] #cp./ndb_mgm/usr/local/bin/
[Root@mgm bin] #cp./ndb_ mgmd/usr/local/bin/
[Root@mgm bin] #cp/var/lib/mysql-cluster/config.ini/usr/local/bin/
[Root@MGM bin] #vi/ Etc/sysconfig/iptables (add red box content)
[ROOT@MGM bin]/etc/init.d/iptables Restart reboot firewall
2. Data node configuration: (All data nodes need to be implemented)
[ROOT@NDBD1] #mkdir/var/mysql
[root@ndbd1] #mkdir/var/mysql/data
[root@ndbd1] #mkdit/var/mysql/log
[ ROOT@NDBD1]#/etc/init.d/iptables Stop (to turn off the firewall or add the open port yourself)
[ROOT@NDBD1] #vi/etc/my.cnf (Add the following)
[mysqld]
datadir=/var/mysql/data
socket=/var/mysql/mysql.sock
user=mysql
# disabling Symbolic-links is Recommended to prevent assorted security risks
symbolic-links=0
#运行NDB存储引擎
ndbcluster
#指定管理节点
ndb-connectstring=192.168.1.71
[Mysql_cluster]
ndb-connectstring=192.168.1.71
[NDB_MGM]
connect-string=192.168.1.71
[Mysqld_safe]
Log-error=/var/mysql/log/mysqld.log
Pid-file=/var/run/mysqld/mysqld.pid
3.sql node configuration: (All SQL nodes need to be executed)
[ROOT@SQL1] #cd/usr/local/mysql/[root@sql1 MySQL] #cp support-files/mysql.server/etc/rc.d/init.d/mysqld [root@SQL1 m Ysql] #chmod +x/etc/rc.d/init.d/mysqld [root@sql1 MySQL] #chkconfig –add mysqld [root@sql1 MySQL] #mkdir/var/mysql [root @SQL1 MySQL] #mkdir/var/mysql/data [root@sql1 MySQL] #mkdir/var/mysql/log [root@sql1 MySQL] #chown-R mysql:mysql/var/my SQL [ROOT@SQL1 MySQL] #ln-S/usr/local/mysql/bin/mysql/usr/bin [ROOT@SQL1 MySQL] #ln-S/var/mysql/mysql.sock/tmp/mysql . Sock [root@sql1 MySQL] #vi/etc/my.cnf [mysqld] datadir=/var/mysql/data socket=/var/mysql/mysql.sock user=mysql # Di Sabling Symbolic-links is recommended to prevent assorted security risks symbolic-links=0 Log-bin =/var/mysql/log/mysql -bin.log max_connections=1000 #以下为mysql Main main mode of the profile # ignore MySQL database replication Binlog-ignore-db=mysql # 2 per increase Auto-increment-incre ment=2 # Sets the offset of the automatically grown field, that is, the initial value is 2 auto-increment-offset=1 ndbcluster ndb-connectstring=192.168.1.71 [Mysql_cluster] ndb- connectstring=192.168.1.71 [NDB_MGM] connect-string=192.168.1.71 [Mysqld_safe] Log-error=/var/mysql/log/mysqld.log pid-file=/var/run/mysqld/
Mysqld.pid
Four, Mysql-cluster start
1. Start Mysql-cluster
MySQL cluster boot sequence is: Management node-> data node->sql node
MySQL cluster shutdown sequence for, SQL node-> data node-> management node
2. Management node:
[root@MGM ]#ndb_mgmd -f /var/lib/mysql-cluster/config.ini –initial(Note that when the first or the config file is modified, the open service must be added initial otherwise the new additions will not be used)
3. Data node:
[root@NDBD1 ]#/usr/local/mysql/bin/ndbd –initial(ditto here)
4.sql node:
[root@SQL1 ]#service mysqld start
5. Verification: (On the Management node)
[ROOT@MGM] #ndb_mgm
Ndb_mgm>show
Five, test
1. Execute at SQL1 node:
[ROOT@SQL1] #mysql call the MySQL
mysql>create database Tianyuan; Create the databases
mysql>use Tianyuan; use database
MySQL >create table Test (i int,name varchar ()) Engine=ndbcluster; CREATE TABLE
Mysql>insert into test values (1, ' Ceshi '); Insert table Data
Mysql>select * from test; query validation
2. Verify that the SQL1 data is synchronized to SQL2 at the SQL2 node:
[ROOT@SQL2] #mysql call MySQL
mysql>show databases; query database
mysql>use Tianyuan; use database
Mysql>select * From Test; Query validation
3. You can verify that data is synchronized by interrupting data nodes or SQL nodes.