开发者社区> 问答> 正文

windows下配置mysql集群,数据库报错

"

步骤如下:
1、准备服务器
管理节点(MGM)  192.168.0.10(db1)
SQL节点1(SQL1)  192.168.0.20(db2)
SQL节点2(SQL2)  192.168.0.30(db3)
数据节点1(NDBD1) 192.168.0.40(db4)
数据节点2(NDBD2) 192.168.0.50(db5)
如果只想配置在两台服务器上可以将db1,db2,db4放在同一台服务器上,db3,db5放在同一服务器上。

2、下载mysql-cluster-gpl-7.0.8a-win32.msi,mysql的官方网站上就可以下载。分别安装在准备好的服务器上。

3、在db1中创建C:mysqlmysql-cluster,并且在mysql-cluster文件夹中创建一个名为config.ini的文件,config.ini的内容如下:
[NDBD DEFAULT]
NoOfReplicas=2
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
# Managment Server
[NDB_MGMD]
HostName=192.168.0.10 #管理节点服务器db1的IP地址
# Storage Engines    
[NDBD]
HostName=192.168.0.10 #MySQL集群db1的IP地址
DataDir= E:data     #如果不存在就创建一个
[NDBD]
HostName=192.168.0.30 #MySQL集群db3的IP地址
DataDir= E:data     #如果不存在就创建一个
[MYSQLD]
HostName=192.168.0.10
[MYSQLD]
HostName=192.168.0.30

4、在第2步安装的mysql根目录下,一般是(D:Program FilesMySQLMySQL Server 7.0)这样的结构。在其中找到my.ini,在最后加入如下内容。
ndbcluster
ndb-connectstring=192.168.0.10
[mysql_cluster]
ndb-connectstring=192.168.0.10 #db1的IP地址

5、使用"D:Program FilesMySQLMySQL Server 7.0binndb_mgmd.exe" - f "C:mysqlmysql-clusterconfig.ini"启动管理节点服务器。

6、使用"D:Program FilesMySQLMySQL Server 7.0binndbd.exe" --initial分别启动节点服务。

7、启动mysql数据库服务。

8、使用"D:Program FilesMySQLMySQL Server 7.0binndb_mgm.exe"检查配置是否成功。一般地会输出如下内容:
C:Documents and SettingsAdministrator>"D:Program FilesMySQLMySQL Server 7.0binndb_mgm.exe"
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: 192.168.0.10:1186
Cluster Configuration
---------------------
[ndbd(NDB)]    2 node(s)
id=2   @192.168.0.10 (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0, Master)
id=3   @192.168.0.30 (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1   @192.168.0.10 (mysql-5.1.37 ndb-7.0.8)

[mysqld(API)]  2 node(s)
id=4   @192.168.0.10 (mysql-5.1.37 ndb-7.0.8)
id=5   @192.168.0.30 (mysql-5.1.37 ndb-7.0.8)

*可以使用quit或者bye退出程序。

9、在db1上使用mysql -uroot -pxxxxxxx test
create table city(
id mediumint unsigned not null auto_increment primary key,
name varchar(20) not null default ''
engine = ndbcluster default charset utf8;
insert into city values(1, 'city1');
insert into city values(2, 'city2');

在db3上使用mysql -uroot -pxxxxxxx test
mysql> select * from city;
+-----------+
|id | name |
+-----------+
|1 | city1 |
+-----------+
|2 | city2 |
+-----------+

OK。
最关键的是要使用ndbcluster 作为表的存储引擎。

10、使用"D:Program FilesMySQLMySQL Server 7.0binndb_mgm.exe" -e shutdown停止集群。否则可能不会将全部数据写到磁盘。

" ![image.png](https://ucc.alicdn.com/pic/developer-ecology/0370589747884eeca08945bb42c3c6ff.png)

展开
收起
python小菜菜 2020-06-01 15:56:00 649 0
1 条回答
写回答
取消 提交回答
  • @mark######拷贝的时候是不是把DataDir后面的路径的反斜线给弄丢了??######必须的 image.png

    2020-06-01 15:56:13
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像