mysql集群

  • 格式:doc
  • 大小:72.00 KB
  • 文档页数:5

Mysql集群配置大法至少要两台服务器,并安装好mysql cluste(本例为mysql-cluster-gpl-7.4.7-winx64)设管理节点服务器IP为192.10.10.198数据节点一服务器IP为192.10.10.198数据节点二服务器IP为192.10.10.48SQL节点一服务器IP为192.10.10.198SQL节点二服务器IP为192.10.10.48管理节点服务器配置管理节点在192.10.10.198机器上1.创建文件夹C:\Program Files\MySQL\MySQL Server 5.6\bin,将ndb_mgmd.exe和ndb_mgm.exe复制到该目录下2.创建文件夹C:\Program Files\MySQL\MySQL Server 5.6\mysql-cluster,第一次启动后在这个文件夹会生成类似ndb_1_config.bin.1的文件,好像是为了以后启动加载的配置3.创建文件夹C:\Program Files\MySQL\MySQL Server 5.6\bin\cluster-logs4.在C:\Program Files\MySQL\MySQL Server5.6\bin下生成两个文件,my.ini和config.ini my.ini内容:[mysql_cluster]# Options for management node processconfig-file= C:\Program Files\MySQL\MySQL Server 5.6\bin\config.iniconfig.ini内容:[NDBD DEFAULT]NoOfReplicas=1DataDir=C:/Program Files/mysqlcluster/datanode/mysql/bin/cluster-dataDataMemory=80MIndexMemory=18M[MYSQLD DEFAULT][NDB_MGMD DEFAULT][TCP DEFAULT][NDB_MGMD]NodeId=1HostName=192.10.10.198 #管理节点服务器# Storage EnginesDataDir=C:\Program Files\MySQL\MySQL Server 5.6\bin\cluster-logs[NDBD]NodeId=2HostName=192.10.10.198 #MySQL集群db1的IP地址DataDir= D:/Program Files/mysqlcluster/datanode/mysql/bin/cluster-data #如果不存在就创建一个[NDBD]NodeId=3HostName=192.10.10.48 #MySQL集群db2的IP地址#DataDir= C:/Program Files/mysqlcluster/datanode/mysql/bin/cluster-data #如果不存在就创建一个[MYSQLD]NodeId=4HostName=192.10.10.198[MYSQLD]NodeId=5HostName=192.10.10.48数据节点1服务器配置节点1在192.10.10.198机器上1.创建文件夹D:/Program Files/mysqlcluster/datanode/mysql/bin,将ndbd.exe复制到该目录下2.创建文件夹D:/Program Files/mysqlcluster/datanode/mysql/bin/cluster-data3.在D:/Program Files/mysqlcluster/datanode/mysql/bin目录下生成my.ini文件,内容为:[mysql_cluster]# Options for data node process:db-connectstring=192.10.10.198# location of management server4.创建文件夹D:/Program Files/mysqlcluster/sqlnode目录,将下载的解压文件夹直接整个复制到D:/ProgramFiles/mysqlcluster/sqlnode/mysql目录下,在D:/ProgramFiles/mysqlcluster/sqlnode/mysql下生成my.ini文件,文件内容为:[mysqld]ndbcluster# Options for data node process:ndbclusterdb-connectstring=192.10.10.198# location of management server数据节点2服务器配置配置基本同节点1但是由于在管理节点的配置文件config.ini里,节点1是自定义目录,在D盘下,而节点2是服从默认节点目录,在C盘下,因此将节点1所有的配置所有的操作都转到C盘下即可之所以要弄这样麻烦是为了测试学习,由此看到在管理节点的配置文件里,自定义优先级高于默认启动集群启动各个节点是有顺序的,先是Management node,然后是Data nodes,最后是SQL nodes1. 启动管理节点Management node在172.16.0.162机子下进入命令行,转到c:/mysql/bin 目录下,输入:ndb_mgmd -f config.ini如果是目录不存在报错,则查看错误,缺什么文件夹就创建什么文件夹,空文件夹就行,然后错误就解决了在启动管理节点服务器的管理节点服务时遇到如下错误:Could neither create or open key 'SYSTEM\CurrentControlSet\Services\EventLog\Application\MySQL Cluster Management Server', error: 5Failed to setup event logging解决方法:regedit 打开注册表在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\下新建创建KEY 值MySQL Cluster Management Server 即可如果遇到:Could neither create or open key 'SYSTEM\CurrentControlSet\Services\EventLog\Application\MySQL Cluster Data Node Daemon', error: 5Failed to setup event logging解决方法:在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\下新建创建KEY 值MySQL Cluster Data Node Daemon 即可2. 启动数据节点在节点1服务器192.10.10.198机子下进入命令行,转到D:/ProgramFiles/mysqlcluster/datanode/mysql/bin目录下,输入:ndbd --connect-string="nodeid2;host=192.10.10.198:1186"同理启动节点2服务器192.10.10.48机子,nodeid2是根据管理节点的配置文件config.ini中的id决定的,如果id为2,则为nodeid2,配置文件中未指定id,则按顺序执行(注):此时可通过在Management node中新开一命令行,转到c:/mysql/bin目录下输入命令:ndb_mgm启动ndb_mgm.exe,之后输入命令:ALL STATUS查看到Data node连接是否成功.之后启动正常之后才能继续启动SQLnode3. 启动SQL节点在节点1服务器192.10.10.198机子下进入命令行,转到D:/Program Files/mysqlcluster/sqlnode/mysql/bin目录下,输入: mysqld.exe --ndbcluster --ndb-connectstring=192.10.10.198 --console按相同方式启动节点2服务器192.10.10.48下的SQL node(注):可通过在Management node节点的机器下,转到C:\Program Files\MySQL\MySQL Server 5.6\bin目录下输入命令:mysqld.exe --ndbcluster --ndb-connectstring=192.10.10.198 –console启动ndb_mgm.exe,之后输入命令:SHOW即可查看到各个节点的连接情况。

正确的显示应该为:数据节点未连接则为:数据节点连接上但SQL节点未连接上则为:测试注:创建表时一定要加上engine = ndbcluster default charset utf8;ndbcluster :表示该表为数据节点可操作;default charset:表示设置字符集C:\>mysql -u root testmysql>create table city (nId mediumint unsigned not null auto_increment primary key, sName varchar(20) not null) engine = ndbcluster default charset utf8;mysql>insert city values(1, ‘city-1′);mysql>insert city values(2, ‘city-2′);在另一台SQL 节点上登录mysql,从表city 里得到记录:C:\>mysql -u root testmysql>select * from city;。