ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql-cluster集群搭建步骤

2020-09-17 03:33:12  阅读:359  来源: 互联网

标签:ndb cluster mysqld usr mysql 集群 local 节点


1.从官网下载mysql-cluster安装包: https://dev.mysql.com/downloads/cluster/

2.解压安装包

复制代码
#上传到服务器目录/usr/softwares并解压
tar -xzvf mysql-cluster-gpl-7.5.15-linux-glibc2.12-x86_64.tar.gz

#新建/usr/local/mysql目录
mkdir /usr/local/mysql
#将解压的文件重命名为mysql,并放到/usr/local/mysql目录下 mv mysql-cluster-gpl-7.6.7-linux-glibc2.12-x86_64 /usr/local/mysql
复制代码

 

3.配置安装管理节点

  1)新增管理节点命令

复制代码
#将文件ndb_mgm和ndb_mgmd拷贝到/usr/local/bin/目录下
cp /usr/local/mysql/bin/ndb_mgm* /usr/local/bin/
 
#ndb_mgm,ndb客户端命令
#ndb_mgmd,ndb管理节点启动命令
#ndb_mgm是ndb_mgmd(MySQL Cluster Server)的客户端管理工具,通过它可以方便的检查Cluster的状态、启动备份、关闭Cluster等功能。
复制代码

  2)修改管理节点的配置文件

复制代码
#创建数据库集群配置文件的目录
mkdir /var/lib/mysql-cluster
 
#创建并编辑配置文件
vim /var/lib/mysql-cluster/config.ini
 
[ndbd default]
NoOfReplicas=2 #数据节点的个数
DataMemory=512M
IndexMemory=64M
 
[ndb_mgmd] #管理节点
NodeId=1
hostname=192.168.17.130
datadir=/var/lib/mysql-cluster/
 
[ndbd] #数据节点
NodeId=2
hostname=192.168.17.131
datadir=/usr/local/mysql/data/
[ndbd]
NodeId=3
hostname=192.168.17.132
datadir=/usr/local/mysql/data/
 
[mysqld] #sql节点
NodeId=4
hostname=192.168.17.133
[mysqld]
NodeId=5
hostname=192.168.17.134
 
复制代码

[NDBD DEFAULT]:表示每个数据节点的默认配置,在每个节点的[NDBD]中不用再写这些选项,只能有一个。

NoOfReplicas:副本数量,数据节点数必须是副本数的整数倍。

[NDB_MGMD]:表示管理节点的配置,只有一个,默认的对其他节点的端口是1186,故服务器需要开放1186端口。

[NDBD]:表示每个数据节点的配置,可以有多个,分别写上不同数据节点的IP地址。

[MYSQLD]:表示SQL节点的配置,可以有多个,分别写上不同SQL节点的IP地址。

  3)启动管理节点

ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial

ndb_mgmd是mysql cluster的管理服务器,后面的-f表示后面的参数是启动的参数配置文件。如果在启动后过了几天又添加了一个数据节点,这时修改了配置文件启动时就必须加上--initial参数,不然添加的节点不会作用在mysql cluster中。

 

3.配置安装数据节点

  1)配置my.cnf文件

复制代码
[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
character_set_server=utf8
 
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
 
[mysql_cluster]
ndb-connectstring=192.168.17.130:1186
复制代码

  2)新增用户和权限

复制代码
#分别添加mysql组和mysql用户
groupadd mysql
useradd mysql -g mysql
 
#进入mysql目录
cd /usr/local/mysql/
 
#把mysql的目录设置成所有者为root
chown -R root .
 
#创建data目录,并把data目录设置所有者为mysql
mkdir data
chown -R mysql data
 
#把mysql的目录改成所属组为mysql
chgrp -R mysql .
复制代码

  3)安装数据库

复制代码
#执行安装脚本,初始化数据库
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
 
#注意其中用户为mysql的名称需要跟配置文件my.cnf中的user=mysql相同
#另外,这里一定要把--basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ 加上,
#否则会最后启动MySQL服务的时候会出现"table mysql.plugin doesn't exist","Can\'t open the mysql.plugin table. Please run mysql_upgrade to create it."错误,以及"PID"获取失败的错误
复制代码

在安装的打印信息最后,有首次登陆的密码,需要特别注意;

  4)设置mysqld服务开机自启

复制代码
#加入到service服务
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
 
#加入到开机自启动列表
chkconfig --add mysqld
复制代码

  5)修改数据库密码

复制代码
#启动数据库
[root@localhost bin]# service mysqld start
 
#进入客户端
[root@localhost bin]# ./mysql -uroot -p
Enter password:这里输入之前的临时密码
 
#修改密码
mysql> set password=password('新密码');
 
#注意此密码必须要与其他服务器上的数据库设置的密码相同
复制代码

  6)启动数据节点

cd /usr/local/mysql
./bin/ndbd --initial
 
#非第一次启动,命令如下
./bin/ndbd

安装后第一次启动数据节点时要加上--initial参数。在以后的启动过程中,则是不能添加该参数的,否则ndbd程序会清除在之前建立的所有用于恢复的数据文件和日志文件。

4.配置安装sql节点

  1)配置my.cnf文件

复制代码
[mysqld]
ndbcluster
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
character_set_server=utf8
default-storage-engine=ndbcluster
port=3306
 
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
 
[mysql_cluster]
ndb-connectstring=192.168.17.130:1186
复制代码

  2)安装mysql数据库

  3)启动sql节点

service mysqld start

如果提示:mysql:mysql is neither service nor target!?报错,则执行:

systemctl unmask mysqld
service mysql start

 

5.测试

  1)管理节点查看

复制代码
ndb_mgm
 
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)]    2 node(s)
id=2    @192.168.17.131  (mysql-5.7.23 ndb-7.6.7, Nodegroup: 0, *)
id=3    @192.168.17.132  (mysql-5.7.23 ndb-7.6.7, Nodegroup: 1)
 
[ndb_mgmd(MGM)]    1 node(s)
id=1    @192.168.17.130  (mysql-5.7.23 ndb-7.6.7)
 
[mysqld(API)]    2 node(s)
id=4    @192.168.17.133  (mysql-5.7.23 ndb-7.6.7)
id=5    @192.168.17.134  (mysql-5.7.23 ndb-7.6.7)
复制代码

  2)测试数据

复制代码
#登陆数据库
cd /usr/local/mysql
./bin/mysql -uroot -p
Enter password:输入密码
 
#创建数据库mytest
mysql> create database mytest;
 
#切换到mytest数据库
mysql> use mytest;
 
#创建表结构sys_myfirst
mysql> create table sys_myfirst(id varchar(36) primary key, name varchar(100), memo varchar(255));
 
#在sys_myfirst中添加几条数据
mysql> insert into sys_myfirst(id, name, memo) values('1','test1','hello world!');
mysql> insert into sys_myfirst(id, name, memo) values('2','test2','hello world haha!');
mysql> insert into sys_myfirst(id, name, memo) values('3','test3','hello world hehe!');
 
#查看数据
mysql> select * from sys_myfirst;
+----+-------+-------------------+
| id | name  | memo              |
+----+-------+-------------------+
| 2  | test2 | hello world haha! |
| 1  | test1 | hello world!      |
| 3  | test3 | hello world hehe! |
+----+-------+-------------------+
3 rows in set (0.00 sec)
复制代码

  3)在另一个sql节点查询

复制代码
#这里就省去登陆mysql客户端的步骤了
#查看数据
mysql> select * from sys_myfirst;
+----+-------+-------------------+
| id | name  | memo              |
+----+-------+-------------------+
| 1  | test1 | hello world!      |
| 3  | test3 | hello world hehe! |
| 2  | test2 | hello world haha! |
+----+-------+-------------------+
3 rows in set (0.00 sec)
 
复制代码

 

6.启动和停止管理节点

启动顺序:管理节点—数据节点—sql节点

停止顺序:管理节点(会同时停止管理节点和数据节点)—sql节点

停止管理节点:

复制代码
#第一种方法
ndb_mgm -e shutdown
 
#第二种方法
ndb_mgm
ndb_mgm> shutdown;
复制代码

停止sql节点:

service mysqld stop

 

7.数据存放位置

在数据节点上通过lsof -c ndb命令(以root身份运行)来找出包含ndb进程所有打开的文件,

发现其真正存储数据的位置在mysql/data/ndb_3_fs/下面(3数字是config.ini的节点id),

各个文件夹中的文件是以16.7M为单位存储的,临时文件达到16.7M后就另起一个。

 

8.spring boot、mybatis集成druid数据库连接池,实现mysql cluster HA负载均衡访问:

https://www.cnblogs.com/yankang/p/11053168.html

 

 

 

 

参考文档:

1.mysql-cluster集群搭建:

https://blog.csdn.net/qq_15092079/article/details/82665307

https://blog.csdn.net/csolo/article/details/87086086

https://www.cnblogs.com/linkstar/p/6510713.html

2.增加管理节点:

https://blog.csdn.net/cf20160405/article/details/77864123

3.增加数据节点:

https://blog.csdn.net/yabingshi_tech/article/details/47953109

4.官方文档:

https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-configuration.html

5.mysqlcluster+haproxy+keepalived

https://blog.csdn.net/csolo/article/details/87363388

标签:ndb,cluster,mysqld,usr,mysql,集群,local,节点
来源: https://www.cnblogs.com/pinghengxing/p/13682553.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有