配置 MySQL 群集必需使用其群集版本,注意和 MySQL Server 版本的区别。本文以 Windows 平台下的 MySQL 群集版本 mysql-cluster-gpl-7.4.7为例。下载地址为:[url]http://downloads.mysql.com/archives/cluster/[/url],选择 mysql-cluster-gpl-7.4.7-win32.zip文件,这是一个 for Windows 32位版本的、免安装的二进制版本。你可以根据自己操作系统的位数来选择相应的下载文件。
[b]一、准备工作[/b]
准备两台安装 Windows 的机器。节点分配及 IP 配置如下:
第一台机器,IP 为 192.168.1.103,作为管理节点(MGM),SQL节点1(SQL1),数据节点1(NDBD1)。
第二台机器,IP 为 192.168.1.106,作为SQL节点2(SQL2),数据节点2(NDBD2)。
管理节点最好不要与数据节点部署在同一台服务器上,否则可能会因为该数据节点服务器的当机,而导致管理节点服务器的问题,从而导致整个群集系统的崩溃。本次实验由于设备有限,只能在两台机子上模拟进行。
[b]二、安装软件及建立相关文件[/b]
(1)解压缩安装包在192.168.1.103机器D:\mysql-cluster-gpl-7.4.7-win32中
(2)在192.168.1.103机器中把 D:\mysql-cluster-gpl-7.4.7-win32\bin 加到 Windows 的系统 path 中
这种做法的好处是往后执行mysql的命令时不用在进入bin目录下执行操作。
(3)在192.168.1.103机器中打开DOS命令行窗口执行代码:
并在 Windows 服务管理界面里,配置 mysql 服务,手动启动(不要自动启动)。
(4)在192.168.1.103机器中建立管理节点日志文件存放目录d:/mysqlcluster/cluster-logs
(5)在192.168.1.103机器中的D:\mysql-cluster-gpl-7.4.7-win32目录建立管理器的配置文件config.ini
(6)已解压缩安装包拷贝一份到192.168.1.106机器D:\mysql-cluster-gpl-7.4.7-win32目录中
(7)在192.168.1.106机器中把 D:\mysql-cluster-gpl-7.4.7-win32\bin 加到 Windows 的系统 path 中。
[b]三 启动与配置[/b]
启动各个节点是有顺序的,先是管理节点,然后是数据节点,最后是SQL节点。
(1)启动管理节点,在192.168.1.103中打开命令窗口执行
ndb_mgmd.exe -f -config.ini
(2)启动192.168.1.103的数据结点ndbd,连接IP使用管理节点IP,在192.168.1.103中打开命令窗口执行
ndbd -c 192.168.1.103
(3) 启动192.168.1.106的数据结点ndbd,连接IP使用管理节点IP,在192.168.1.106中打开命令窗口执行
ndbd -c 192.168.1.103
(4) 启动192.168.1.103的SQL节点,连接IP使用管理节点IP,在192.168.1.103中命令窗口执行
mysqld.exe --ndbcluster --ndb-connectstring=192.168.1.103 --console
(5) 启动192.168.1.106的SQL节点,连接IP使用管理节点IP,在192.168.1.106中命令窗口执行
mysqld.exe --ndbcluster --ndb-connectstring=192.168.1.106 --console
(6)启动完毕检查一下连接情况,在管理节点192.168.1.103机器中打开命令窗口按顺序执行以下命令
ndb_mgm
show
即可查看到各个节点的连接情况。正确显示应该为:
[img]http://dl2.iteye.com/upload/attachment/0116/2888/461daeae-d410-3fce-a8f9-bc50480636c8.png[/img]
[b]四、测试[/b]
(1) 在某台 SQL 节点上登录 mysql,建表 baby,并插入数据
(注:创建表时一定要加上engine = ndbcluster default charset utf8; ndbcluster :表示该表为数据节点可操作; default charset:表示设置字符集)
step1.使用root用户进入test数据库
C:\>mysql -u root test
step2. 创建baby表
mysql>CREATE TABLE baby (
id int(11) NOT NULL DEFAULT 0,
name varchar(50) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=ndbcluster DEFAULT CHARSET=utf8;
step3. 插入数据
mysql>insert into baby values(1,'蓝蓝');
mysql>insert into baby values(2,'天天');
(2) 在另一台 SQL 节点上登录 mysql,从表 baby 里得到记录:
C:\>mysql -u root test
mysql>select * from baby;
[img]http://dl2.iteye.com/upload/attachment/0116/2908/14a5ecc0-1446-3ff9-adc7-739785bb44c9.png[/img]
注意在另一台SQL节点D:\mysql-cluster-gpl-7.4.7-win32\data\test中还可以看到
我们刚才新建的表文件,baby.frm、baby.ndb,其他SQL节点上也有。
[b]一、准备工作[/b]
准备两台安装 Windows 的机器。节点分配及 IP 配置如下:
第一台机器,IP 为 192.168.1.103,作为管理节点(MGM),SQL节点1(SQL1),数据节点1(NDBD1)。
第二台机器,IP 为 192.168.1.106,作为SQL节点2(SQL2),数据节点2(NDBD2)。
管理节点最好不要与数据节点部署在同一台服务器上,否则可能会因为该数据节点服务器的当机,而导致管理节点服务器的问题,从而导致整个群集系统的崩溃。本次实验由于设备有限,只能在两台机子上模拟进行。
[b]二、安装软件及建立相关文件[/b]
(1)解压缩安装包在192.168.1.103机器D:\mysql-cluster-gpl-7.4.7-win32中
(2)在192.168.1.103机器中把 D:\mysql-cluster-gpl-7.4.7-win32\bin 加到 Windows 的系统 path 中
这种做法的好处是往后执行mysql的命令时不用在进入bin目录下执行操作。
(3)在192.168.1.103机器中打开DOS命令行窗口执行代码:
mysqld.exe -install mysql
并在 Windows 服务管理界面里,配置 mysql 服务,手动启动(不要自动启动)。
(4)在192.168.1.103机器中建立管理节点日志文件存放目录d:/mysqlcluster/cluster-logs
(5)在192.168.1.103机器中的D:\mysql-cluster-gpl-7.4.7-win32目录建立管理器的配置文件config.ini
[NDBD DEFAULT]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
[NDB_MGMD]
ID=1
#管理节点服务器
HostName=192.168.1.103
DataDir=d:/mysqlcluster/cluster-logs
[NDBD]
ID=2
HostName=192.168.1.103 #MySQL集群db1的IP地址
[NDBD]
ID=3
HostName=192.168.1.106 #MySQL集群db2的IP地址
[MYSQLD]
ID=4
HostName=192.168.1.103 #MySQL集群sql1的IP地址
[MYSQLD]
ID=5
HostName=192.168.1.106 #MySQL集群sql2的IP地址
(6)已解压缩安装包拷贝一份到192.168.1.106机器D:\mysql-cluster-gpl-7.4.7-win32目录中
(7)在192.168.1.106机器中把 D:\mysql-cluster-gpl-7.4.7-win32\bin 加到 Windows 的系统 path 中。
[b]三 启动与配置[/b]
启动各个节点是有顺序的,先是管理节点,然后是数据节点,最后是SQL节点。
(1)启动管理节点,在192.168.1.103中打开命令窗口执行
ndb_mgmd.exe -f -config.ini
(2)启动192.168.1.103的数据结点ndbd,连接IP使用管理节点IP,在192.168.1.103中打开命令窗口执行
ndbd -c 192.168.1.103
(3) 启动192.168.1.106的数据结点ndbd,连接IP使用管理节点IP,在192.168.1.106中打开命令窗口执行
ndbd -c 192.168.1.103
(4) 启动192.168.1.103的SQL节点,连接IP使用管理节点IP,在192.168.1.103中命令窗口执行
mysqld.exe --ndbcluster --ndb-connectstring=192.168.1.103 --console
(5) 启动192.168.1.106的SQL节点,连接IP使用管理节点IP,在192.168.1.106中命令窗口执行
mysqld.exe --ndbcluster --ndb-connectstring=192.168.1.106 --console
(6)启动完毕检查一下连接情况,在管理节点192.168.1.103机器中打开命令窗口按顺序执行以下命令
ndb_mgm
show
即可查看到各个节点的连接情况。正确显示应该为:
[img]http://dl2.iteye.com/upload/attachment/0116/2888/461daeae-d410-3fce-a8f9-bc50480636c8.png[/img]
[b]四、测试[/b]
(1) 在某台 SQL 节点上登录 mysql,建表 baby,并插入数据
(注:创建表时一定要加上engine = ndbcluster default charset utf8; ndbcluster :表示该表为数据节点可操作; default charset:表示设置字符集)
step1.使用root用户进入test数据库
C:\>mysql -u root test
step2. 创建baby表
mysql>CREATE TABLE baby (
id int(11) NOT NULL DEFAULT 0,
name varchar(50) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=ndbcluster DEFAULT CHARSET=utf8;
step3. 插入数据
mysql>insert into baby values(1,'蓝蓝');
mysql>insert into baby values(2,'天天');
(2) 在另一台 SQL 节点上登录 mysql,从表 baby 里得到记录:
C:\>mysql -u root test
mysql>select * from baby;
[img]http://dl2.iteye.com/upload/attachment/0116/2908/14a5ecc0-1446-3ff9-adc7-739785bb44c9.png[/img]
注意在另一台SQL节点D:\mysql-cluster-gpl-7.4.7-win32\data\test中还可以看到
我们刚才新建的表文件,baby.frm、baby.ndb,其他SQL节点上也有。