本文共 4557 字,大约阅读时间需要 15 分钟。
The cluster need a lot of server for experiments, if you haven't any server for one, I have a good idea that using Vmware for you.
at first, let's create lots of virtual machine(You MUST have a third server). and then follow me step by step learning how to set up a mysql cluster on your virtual machine.
mgm 192.168.0.1 # Managementdata 192.168.0.2 # Ndbd Nodedata 192.168.0.3 # Ndbd Nodesql 192.168.0.4 # SQL Nodesql 192.168.0.5 # SQL Node
neo@mgm:~$ sudo vim /var/lib/mysql-cluster/config.ini[NDBD DEFAULT]NoOfReplicas=2DataMemory=80MIndexMemory=18M[MYSQLD DEFAULT][NDB_MGMD DEFAULT][TCP DEFAULT]portnumber=2202[NDB_MGMD]hostname=192.168.0.1datadir=/var/lib/mysql-cluster[NDBD]hostname=192.168.0.2datadir=/var/lib/mysql-cluster[NDBD]hostname=192.168.0.3datadir=/var/lib/mysql-cluster[MYSQLD]hostname=192.168.0.4[MYSQLD]hostname=192.168.0.5
my.cnf
neo@data:~$ sudo vim /etc/mysql/my.cnf[mysqld]ndbclusterndb-connectstring=192.168.0.1 # the IP of the MANAGMENT SERVER[mysql_cluster]ndb-connectstring=192.168.0.1 # the IP of the MANAGMENT SERVER
my.cnf
neo@sql:~$ sudo vim /etc/mysql/my.cnf[mysqld]ndbclusterndb-connectstring=192.168.0.1 # the IP of the MANAGMENT SERVER[mysql_cluster]ndb-connectstring=192.168.0.1 # the IP of the MANAGMENT SERVER
starting mgm
neo@mgm:~$ sudo ndb_mgmd -f /var/lib/mysql-cluster/config.ini
initial ndbd
neo@data:~$ sudo ndbd --initial
首次运行需要 --initial 参数,以后不需要。
MGM
$ sudo ndb_mgm -e shutdown
neo@mgm:~$ ndb_mgm-- NDB Cluster -- Management Client --ndb_mgm> showConnected to Management Server at: localhost:1186Cluster Configuration---------------------[ndbd(NDB)] 2 node(s)id=2 @192.168.0.2 (Version: 5.0.51, Nodegroup: 0)id=3 @192.168.0.3 (Version: 5.0.51, Nodegroup: 0, Master)[ndb_mgmd(MGM)] 1 node(s)id=1 @192.168.0.1 (Version: 5.0.51)[mysqld(API)] 2 node(s)id=4 @192.168.0.4 (Version: 5.0.51)id=5 @192.168.0.5 (Version: 5.0.51)ndb_mgm>
与没有使用簇的MySQL相比,在MySQL簇内操作数据的方式没有太大的区别。 | |
---|---|
执行这类操作时应记住三点
|
SQL Node 1
neo@sql:~$ mysql -uroot -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 7Server version: 5.0.51a-3ubuntu5.1 (Ubuntu)Type 'help;' or '\h' for help. Type '\c' to clear the buffer.mysql> create database cluster;Query OK, 1 row affected (0.00 sec)mysql> use clusterDatabase changedmysql> create table city( id mediumint unsigned not null auto_increment primary key, name varchar(20) not null default '' ) engine = ndbcluster default charset utf8;Query OK, 0 rows affected (1.07 sec)mysql> insert into city values(1, 'Shenzhen');Query OK, 1 row affected (0.12 sec)mysql> insert into city values(2, 'Guangdong');Query OK, 1 row affected (0.00 sec)
SQL Node 2
neo@sql:~$ mysql -uroot -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 7Server version: 5.0.51a-3ubuntu5.1 (Ubuntu)Type 'help;' or '\h' for help. Type '\c' to clear the buffer.mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || example || mydb || mysql || neo |+--------------------+6 rows in set (0.13 sec)mysql> create database cluster;Query OK, 1 row affected (0.00 sec)mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || cluster || example || mydb || mysql || neo |+--------------------+6 rows in set (0.13 sec)mysql> use cluster;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> show tables;+-------------------+| Tables_in_cluster |+-------------------+| city |+-------------------+1 row in set (0.01 sec)mysql> select * from city;+----+-----------+| id | name |+----+-----------+| 1 | Shenzhen || 2 | Guangdong |+----+-----------+2 rows in set (0.03 sec)mysql>