Mysql集群windows服务器版搭建过程

此文就聊聊在windows服务器上搭建集群遇到的一些问题,具体的安装和配置解释我就不赘述了。供后续遇到问题的朋友们可以更快的找到问题所在,直接搞定以便避免占用太多不必要的时间。

服务器版本winsever2016 64位

mysql-cluster-gpl-7.6.7-winx64. zip

解压mysql-cluster-gpl-7.6.7-winx64.zip,我是存储放在了D盘,并且重命名了文件夹,我这里就改成直译集群了,mysqlCluster。

注意:解压后文件目录下是不包含data,db文件夹和文件config.ini&my.ini的。

是我后来自己创建的。

先说配置文件:

[ndbd default]

NoOfReplicas=2

MaxNoOfTables=1024

MaxNoOfUniqueHashIndexes=1024

MaxNoOfOrderedIndexes=1024

MaxNoOfAttributes=10000

[ndb_mgmd]

NodeId=1

HostName=192.168.101.31

DataDir=D:\mysqlCluster\data

[ndbd]

NodeId=21

HostName=192.168.101.31

DataDir=D:\mysqlCluster\data

[ndbd]

NodeId=22

HostName=192.168.101.30

DataDir=D:\mysqlCluster\data

[mysqld]

NodeId=11

HostName=192.168.101.31

[mysqld]

NodeId=12

HostName=192.168.101.30

my.ini Mysql配置文件

[mysqld]

character_set_server=utf8

basedir="D:\mysqlCluster"

datadir="D:\mysqlCluster\db"

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

ndbcluster

ndb-connectstring=192.168.101.31

explicit_defaults_for_timestamp=true

event_scheduler=on

[mysql_cluster]

ndb-connectstring=192.168.101.31

因为我设计的数据库是存在定时执行事件的,所以特别写了下面这一行

event_scheduler=on

简单的介绍一下,我只有两台机器,分别为192.168.101.31和192.168.101.30

其中192.168.101.31既做管理节点又做数据节点。

首先处理192.168.101.31服务器

在其D:\mysqlCluster目录下存储config.ini和my.ini文件。

创建data和db文件夹

其次处理192.168.101.30服务器

在其D:\mysqlCluster目录下存储my.ini文件即可。

创建data和db文件夹

文件和目录准备好之后就要开启集群了。

顺序是 管理节点→数据节点→SQL节点。

在192.168.101.31服务器用管理员身份打开cmd,跳转到集群目录,

Microsoft Windows [版本 10.0.14393]

(c) 2016 Microsoft Corporation。保留所有权利。

C:\Windows\system32>cd ..

C:\Windows>cd ..

D:\>cd mysqlCluster\bin

执行

ndb_mgmd.exe --config-file="D:\mysqlCluster\config.ini" --configdir="D:\mysqlCluster"

启动数据节点比较简单,再打开一个cmd窗口,跳转目录

Microsoft Windows [版本 10.0.14393]

(c) 2016 Microsoft Corporation。保留所有权利。

C:\Windows\system32>cd ..

C:\Windows>cd ..

D:\>cd mysqlCluster\bin

执行

ndbd.exe --initial

启动SQL节点需要做的多一些,可能出错的地方也较多。

依旧要跳转到目录D:\>cd mysqlCluster\bin,然后执行初始化

mysqld --initialize --datadir=D:\mysqlCluster\db

如果不指定datadir会报错。

初始化Mysql数据库之后,要注册Mysql服务。

mysqld --install Mysql 这里我的服务名就叫Mysql了。

net start Mysql 启动服务,Mysql 就是上一行注册的名称。

开启SQL节点就简单了,跳转到D:\>cd mysqlCluster\bin目录,执行mysqld。

接下来处理192.168.101.30服务器,因为其不是管理节点所以少点操作。

按照上述数据节点和SQL节点的启动方式来就可以了。

**很多人可能是直接关闭服务器的放火墙,我是开放的3306和1186端口。

测试各个节点的情况如下:

******

mysql数据库在5.7版本后初次使用时root账号的密码是随机生成的,所以我们可能还需要做点事。

首先打开一个cmd窗口,执行mysqld --skip-grant-tables进入安全模式

再次打开一个cmd窗口,直接输入mysql跳过权限验证连接数据库。

update mysql.user set authentication_string=password('root') where user='root';

flush privileges;

quit

关闭所有命令提示符窗口,使用命令(taskkill /f /im mysqld.exe;)结束进程或者在任务管理器里结束 mysqld.exe 进程。重启 MySQL 服务,之后使用 root 账号和新密码。

比如说还出现了这个错误:

1045 -Access denied for user'root'@'192.168.101.30'(using password :yes)

这个原因是没有开放访问权限。

步骤如下:

1、D:/mysqlcluster/bin/>mysql -h localhost -u root -p

输入密码后登入mysql服务器

2、mysql>grant all privileges on *.* to 'root'@'%' with grant option;

任何主机访问数据的权限

3、mysql>flush privileges;

修改生效

4、mysql>quit

退出mysql服务器

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180929G1Q9YA00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券