搭建MySQL Cluster集群服务器

2023-02-07  本文已影响0人  街头民工

参考地址

数据库的分布式和主从的区别

环境说明

在虚拟机创建了三台虚拟服务器(一台管理节点,其余两台都是sql节点+数据节点)
  1. 186.186.1.218 (别名:tag1) (centos 7 64位)
  2. 186.186.1.215 (别名:tag2)(centos 7 64位)
  3. 186.186.1.188 (别名:tag3)(centos 7 64位)
下载 MySQL Cluster

下载地址

image.png

安装MySQL Cluster

所有服务器均需执行执行以下操作。
  1. 上传到服务器目录/usr/softwares并解压(没有softwares文件自行创建)
    tar -xzvf mysql-cluster-gpl-7.6.25-linux-glibc2.12-x86_64.tar.gz

  2. 将解压的文件重命名为mysql,并放到/usr/local/目录下
    mv mysql-cluster-gpl-7.6.25-linux-glibc2.12-x86_64 /usr/local/mysql

配置安装管理节点
  1. 将文件ndb_mgm和ndb_mgmd拷贝到/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=1
DataMemory=200M
IndexMemory=64M
 
[ndb_mgmd]
NodeId=1
hostname=186.186.1.218
datadir=/var/lib/mysql-cluster/
 
[ndbd]
NodeId=2
hostname=186.186.1.215
datadir=/usr/local/mysql/data/
[ndbd]
NodeId=3
hostname=186.186.1.188
datadir=/usr/local/mysql/data/
 
[mysqld]
NodeId=4
hostname=186.186.1.215
[mysqld]
NodeId=5
hostname=186.186.1.188
  1. 启动管理节点
    ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
警告
警告原因:IndexMemory 后续会针对各个ndbd进行配置,而不是统一配置了

分别在186.186.1.215,186.186.1.188 执行操作

# 开启防火墙
systemctl start firewalld.service
# 防火墙开机启动
systemctl enable firewalld.service
# 关闭防火墙
systemctl stop firewalld.service
# 查看防火墙状态
firewall-cmd --state
  1. mysql服务启动时会默认加载/etc/my.cnf作为其配置文件,故需要修改/etc/my.cnf配置文件。
    vi /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
character_set_server=utf8
ndbcluster
ndb-connectstring=186.186.1.218
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=186.186.1.218
  1. 安装mysql数据库 (自带无需安装)
  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 .
  1. 执行安装脚本(执行结果图片,圈红的位置为 mysql 初始密码)
    初始化数据库(这里要注意,如果你安装的版本和我的不同,数据库初始化的命令使不同的,很多之前的版本会使用:scripts/mysql_install_db --user=mysql来初始化,这个已经被mysql在新的版本中废弃了,所以需要使用下面的命令安装,如果你需要安装别的版本请参考mysql官网的对应版本的安装命令。)
  1. 设置mysql服务开机自启动
#加入到service服务
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
 
#加入到开机自启动列表
chkconfig --add mysqld
查询是否启动成功

chkconfig --list
执行结果
  1. 修改数据库密码
#启动数据库
service mysqld start
 
#进入客户端
cd /usr/local/mysql/bin

./mysql -uroot -p
Enter password:这里输入之前的临时密码
 
#修改密码
mysql> set password=password('新密码');
 
#注意此密码必须要与其他服务器上的数据库设置的密码相同
  1. 启动数据节点
cd /usr/local/mysql
./bin/ndbd --initial

#非第一次启动,命令如下
./bin/ndbd

配置安装sql节点(这里由于我是在tag2和tag3服务器 都是作为sql节点和数据节点,就没区分sql节点和数据节点配置)

  1. 数据节点
[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
  1. sql节点
[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

测试

ndb_mgm
 
ndb_mgm> show
执行结果

测试数据

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;

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.02 sec)

cd /usr/local/mysql
./bin/mysql -uroot -p
Enter password:输入密码
mysql>  use mytest;
select * from sys_myfirst;
image.png

启动和停止集群

  1. 第一种方法:ndb_mgm -e shutdown

  2. 第二种方法:

ndb_mgm
ndb_mgm> shutdown;
上一篇 下一篇

猜你喜欢

热点阅读