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服务器版搭建过程的主要内容,如果未能解决你的问题,请参考以下文章