Linux环境下配置mysql轻车熟驾之后,来折腾windows了!
本次用到的系统&软件:
3台Windows2008服务器(数据节点和SQL节点位于同一台机器):
管理节点IP:192.168.1.5
数据节点1:192.168.1.6
SQL节点1:192.168.1.6
数据节点2:192.168.1.7
SQL节点2:192.168.1.7
mysql-cluster-gpl-noinstall-7.1.15-win32.zip(官网下载)
navicat8_mysql_cs.exe(非必需)
Notepad++(非必需)
安装步骤:
1、管理节点的安装配置
在C盘创建C:\mysql\mysql-cluster文件夹,然后新建一个config.ini文件,内容如下:
[NDBD DEFAULT]
NoOfReplicas=2
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
# Managment Server
[NDB_MGMD]
HostName=192.168.1.5 #管理节点IP地址
# Storage Engines
[NDBD]
HostName=192.168.1.6 #MySQL集群db1的IP地址
DataDir= D:/data #如果不存在就创建一个
[NDBD]
HostName=192.168.1.7 #MySQL集群db2的IP地址
DataDir= D:/data #如果不存在就创建一个
[MYSQLD]
HostName=192.168.1.6
[MYSQLD]
HostName=192.168.1.7
2、数据节点/SQL节点安装配置(两台配置完全一样)
解压mysql-cluster-gpl-noinstall-7.1.15-win32.zip到D盘根目录,重命名文件夹mysql-cluster.
编辑my.ini文件,直接copy d:\mysql-cluster\my-large.ini到C:\windows\my.ini,然后编辑,主要是编辑2个地方:
在[mysqld]末尾,[mysqldump]之前加上:
ndbcluster
ndb-connectstring=192.168.1.5
在整个文件最末尾加上:
[mysql_cluster]
ndb-connectstring=192.168.1.5
创建D:\data文件夹
3、测试群集是否成功
打开管理节点,打开cmd,进入bin目录,输入:
ndb_mgm.exe
show
如果数据节点和SQL节点都连上了,说明基本ok,如下:
ndb_mgm> show
Cluster Configuration
———————
[ndbd(NDB)] 2 node(s)
id=2 @192.168.1.6 (mysql-5.1.56 ndb-7.1.15, Nodegroup: 0, Master)
id=3 @192.168.1.7 (mysql-5.1.56 ndb-7.1.15, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.1.5 (mysql-5.1.56 ndb-7.1.15)
[mysqld(API)] 2 node(s)
id=4 @192.168.1.6 (mysql-5.1.56 ndb-7.1.15)
id=5 @192.168.1.7 (mysql-5.1.56 ndb-7.1.15)
然后,再用navicat8连上两个数据库,随便在其中的一个数据库中创建一个数据库和表,写入内容,然后看另外一个节点是否进行了数据同步,同步即成功了!
4、注意事项
A、将数据节点机中d:\mysql-cluster\bin的ndb_mgm.exe、ndb_mgmd.exe拷贝到管理节点机中的C:\mysql\mysql-cluster\bin目录(bin目录不存在就新建下)
B、启动顺序如下(已经将mysql加入到环境变量path里面了):
在管理节点192.168.1.5上打开cmd,运行
cd c:\mysql\mysql-cluster\bin
ndb_mgmd.exe -f c:\mysql\mysql-cluster\config.ini
在节点1上打开cmd,运行
ndbd.exe –initial(第一次运行加参数,以后就不加了)
在节点2上打开cmd,运行
ndbd.exe –initial(第一次运行加参数,以后就不加了)
在节点1上打开cmd,运行
mysqld.exe –console
在节点2上打开cmd,运行
mysqld.exe –console
C、关闭三台服务器的防火墙,否则会出现数据连上,而sql连不上的情况,具体表现如下:
使用mysqld.exe –console命令启动mysql时,提示如下:
110712 11:58:20 [Note] Plugin ‘FEDERATED’ is disabled.
110712 11:58:20 InnoDB: Initializing buffer pool, size = 8.0M
110712 11:58:20 InnoDB: Completed initialization of buffer pool
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
110712 11:58:20 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files…
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer…
110712 11:58:20 InnoDB: Started; log sequence number 0 44233
110712 11:58:22 [Note] Starting Cluster Binlog Thread
110712 11:58:22 [Note] Recovering after a crash using mysql-bin
110712 11:58:22 [Note] Starting crash recovery…
110712 11:58:22 [Note] Crash recovery finished.
110712 11:58:22 [Note] Event Scheduler: Loaded 0 events
110712 11:58:37 [Warning] NDB : Tables not available after 15 seconds. Consider increasing –ndb-wait-setup value
110712 11:58:37 [Note] mysqld.exe: ready for connections.
Version: ‘5.1.56-ndb-7.1.15-cluster-gpl-log’ socket: ” port: 3306 MySQL Cluster Server (GPL)
在管理节点查看显示如下:
[mysqld(API)] 2 node(s)
id=4 (not connected, accepting connect from 192.168.1.6)
id=5 (not connected, accepting connect from 192.168.1.7)
D、如果之前服务器装过mysql,需要卸载干净,删除data、以及C盘windows下面的my.ini文件。
E、SQL节点建立数据库时,必须选择“ndbcluster”数据库引擎。如果不选择“ndbcluster”引擎,建立的数据库将不会进入MySQL群集系统中,但是可以独立使用。
F、每个 NDB 表必须有一个主键。如果在创建表时未定义主键,NDB Cluster 存储引擎将自动生成隐含的主键。该隐含的键也将占用空间,就像任何其他的表索引一样。由于没有足够的内存来容纳这些自动创建的键,出现问题并不罕见。
5、如何在windows下面结合keepalived或heartbeat
这个问题是我目前暂时没有去尝试的,一直用linux,很简单的一个操作,到Windows上面就要伤神了,希望可以顺利解决。
OVER!
--转自