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

Posted 冰壁de邪神宫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的。

是我后来自己创建的。

先说配置文件:

config.ini 用于配置管理节点 数据节点  SQL节点,下面直接贴文本便于复制:

[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 ..

C:\>D:

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 ..

C:\>D:

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服务器


以上是关于Mysql集群windows服务器版搭建过程的主要内容,如果未能解决你的问题,请参考以下文章

RabbitMQ多台物理机集群搭建

windows 2003 IIS6.0 怎么搭建PHP环境

windows版redis集群搭建

如何在windows下搭建Nginx+MySQL+PHP环境

Jenkins篇:Jenkins 集群搭建(主从)

集群之mysql主从配置(windows和linux版)