MySQL Cluster实验记录

MySQL Cluster实验记录

1、YUM方式安装MySQL Cluster

1.1 YUM方式安装MySQL Cluster

系统资源及组件规划:

节点名称系统名称CPU/内存网卡磁盘IP地址OS
MGMTNodemaster2C/4Gens3364G192.168.0.10CentOS7
SQLNode1sqlnode12C/4Gens3364G192.168.0.11CentOS7
SQLNode2sqlnode22C/4Gens3364G192.168.0.12CentOS7
DATANode1datanode12C/4Gens3364G192.168.0.13CentOS7
DATANode2datanode22C/4Gens3364G192.168.0.14CentOS7

安装基本软件:

yum -y install vim lrzsz wget net-tools bash-completion yum-utils

在这里插入图片描述

设置NTP:

yum -y install chrony

在这里插入图片描述

systemctl start chronyd
systemctl enable chronyd
systemctl status chronyd

在这里插入图片描述

chronyc sources

在这里插入图片描述

设置SELinux、防火墙:

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

在这里插入图片描述

设置YUM源:

wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

在这里插入图片描述

yum -y install mysql80-community-release-el7-3.noarch.rpm

在这里插入图片描述

yum repolist enabled | grep "mysql.*-community.*"
yum-config-manager --enable mysql-cluster-8.0-community
yum repolist enabled | grep "mysql.*-community.*"

在这里插入图片描述

安装MySQL Cluster组件及依赖包:

管理节点:

yum -y install perl perl-Class-MethodMaker perl-DBI libaio numactl

在这里插入图片描述

yum -y install mysql-cluster-community-management-server mysql-cluster-community-client

在这里插入图片描述

SQL节点:

yum -y install mysql-cluster-community-server

在这里插入图片描述

数据节点:

yum -y install mysql-cluster-community-data-node mysql-cluster-community-client

在这里插入图片描述

在管理节点上创建目录:

mkdir /etc/mysql-cluster
mkdir /var/lib/mysql

在这里插入图片描述

在管理节点上编辑MySQL Cluster配置文件:

cat > /etc/mysql-cluster/config.ini << EOF
[ndbd default]
noofreplicas=2

[ndb_mgmd]
nodeid=10
hostname=192.168.0.10
datadir=/var/lib/mysql

[mysqld]
nodeid=11
hostname=192.168.0.11

[mysqld]
nodeid=12
hostname=192.168.0.12

[ndbd]
nodeid=13
hostname=192.168.0.13
datadir=/var/lib/mysql

[ndbd]
nodeid=14
hostname=192.168.0.14
datadir=/var/lib/mysql
EOF

在这里插入图片描述

在SQL节点上编辑MySQL Cluster配置文件:

cat > /etc/my.cnf << EOF
[mysqld]
ndbcluster
ndb-connectstring=192.168.0.10

user=mysql
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
EOF

在这里插入图片描述

在SQL节点上启动MySQL:

systemctl start mysqld
systemctl status mysqld

在这里插入图片描述

在SQL节点上登录MySQL并设置密码:

grep 'temporary password' /var/log/mysqld.log
mysql -uroot -p

在这里插入图片描述

ALTER USER 'root'@'localhost' IDENTIFIED BY 'PassWord8.0!';

在这里插入图片描述

在SQL节点上关闭MySQL,集群初始化时,重新启动:

systemctl stop mysqld

在这里插入图片描述

在数据节点上创建目录:

mkdir /var/lib/mysql

在这里插入图片描述

在数据节点上编辑MySQL Cluster配置文件:

cat > /etc/my.cnf << EOF
[mysql_cluster]
ndb-connectstring=192.168.0.10
EOF

在这里插入图片描述

1.2 MySQL Cluster初始化/启动

初始化/启动顺序:管理服务器->存储节点->SQL节点

在管理节点上初始化/启动管理节点:

ndb_mgmd -f /etc/mysql-cluster/config.ini --initial

–initial仅在初始化过程中使用

在这里插入图片描述

在数据节点上初始化/启动数据节点:

ndbd --initial

–initial仅在初始化过程中使用
在这里插入图片描述

在SQL节点上启动MySQL:

systemctl start mysqld
systemctl status mysqld

在这里插入图片描述

在管理节点上查看MySQL Cluster状态:

ndb_mgm -e show

在这里插入图片描述

在任意SQL节点上创建数据库和表:

CREATE DATABASE db;
CREATE TABLE db.tb (
	id int NOT NULL,
	name varchar(255) NULL,
	PRIMARY KEY (id)
) ENGINE=ndb;

在这里插入图片描述

在任意SQL节点上插入数据:

INSERT INTO db.tb (id,name) VALUES (1,'MySQL');

在这里插入图片描述

在任意SQL节点上查看数据库、表和数据:

SHOW DATABASES;
DESCRIBE db.tb;
SELECT * FROM db.tb;

在这里插入图片描述

1.3 MySQL Cluster数据备份与恢复

MySQL Cluster数据备份:

在管理节点上备份数据:

ndb_mgm
start backup

在这里插入图片描述

在数据节点上查看备份文件:

ll /var/lib/mysql/BACKUP/BACKUP-1

在这里插入图片描述

在任意SQL节点上删除表:

DROP TABLE db.tb;

在这里插入图片描述

MySQL Cluster数据恢复:

在管理节点上关闭管理和数据节点:

ndb_mgm
shutdown

在这里插入图片描述

在SQL节点上关闭MySQL:

systemctl stop mysqld

在这里插入图片描述

在管理节点上修改MySQL Cluster配置文件:

echo [mysqld] >> /etc/mysql-cluster/config.ini
echo [mysqld] >> /etc/mysql-cluster/config.ini

在这里插入图片描述

在管理节点上重新加载管理节点:

ndb_mgmd -f /etc/mysql-cluster/config.ini --reload

在这里插入图片描述

在数据节点上启动数据节点:

ndbd --initial

在这里插入图片描述

在SQL节点上启动MySQL:

systemctl start mysqld
systemctl status mysqld

在这里插入图片描述

在任意数据节点恢复表格式,此处数据节点ID为13:

ndb_restore -n13 -b1 -m -r --backup_path=/var/lib/mysql/BACKUP/BACKUP-1

在这里插入图片描述

在数据节点恢复数据,此处数据节点ID为13:

ndb_restore -n13 -b1 -r --backup_path=/var/lib/mysql/BACKUP/BACKUP-1

在这里插入图片描述

在数据节点恢复数据,此处数据节点ID为14:

ndb_restore -n14 -b1 -r --backup_path=/var/lib/mysql/BACKUP/BACKUP-1

在这里插入图片描述

在任意SQL节点上查看数据库、表和数据:

SHOW DATABASES;
DESCRIBE db.tb;
SELECT * FROM db.tb;

在这里插入图片描述

1.4 关闭MySQL Cluster

关闭顺序:SQL节点->管理节点

在SQL节点上关闭MySQL:

systemctl stop mysqld

在这里插入图片描述

在管理节点上关闭管理和数据节点:

ndb_mgm
shutdown

在这里插入图片描述

2、二进制方式安装MySQL Cluster

2.1 二进制方式安装MySQL Cluster

系统资源及组件规划:

节点名称系统名称CPU/内存网卡磁盘IP地址OS
MGMTNodemaster2C/4Gens3364G192.168.0.10CentOS7
SQLNode1sqlnode12C/4Gens3364G192.168.0.11CentOS7
SQLNode2sqlnode22C/4Gens3364G192.168.0.12CentOS7
DATANode1datanode12C/4Gens3364G192.168.0.13CentOS7
DATANode2datanode22C/4Gens3364G192.168.0.14CentOS7

安装基本软件:

yum -y install vim lrzsz wget net-tools bash-completion

在这里插入图片描述

设置NTP:

yum -y install chrony

在这里插入图片描述

systemctl start chronyd
systemctl enable chronyd
systemctl status chronyd

在这里插入图片描述

chronyc sources

在这里插入图片描述

设置SELinux、防火墙:

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

在这里插入图片描述

在所有节点上下载并解压缩MySQL Cluster安装包:

下载地址:https://downloads.mysql.com/archives/cluster/

tar -xf mysql-cluster-8.0.21-linux-glibc2.12-x86_64.tar.gz
mv mysql-cluster-8.0.21-linux-glibc2.12-x86_64 /usr/local/mysql

在这里插入图片描述

设置环境变量:

echo PATH=$PATH:/usr/local/mysql/bin/ >> /etc/profile
source /etc/profile

在这里插入图片描述

在管理节点上创建目录:

mkdir /usr/local/mysql/mysql-cluster

在这里插入图片描述

在管理节点上编辑MySQL Cluster配置文件:

cat > /usr/local/mysql/config.ini << EOF
[ndbd default]
noofreplicas=2

[ndb_mgmd]
nodeid=10
hostname=192.168.0.10
datadir=/usr/local/mysql/mysql-cluster

[mysqld]
nodeid=11
hostname=192.168.0.11

[mysqld]
nodeid=12
hostname=192.168.0.12

[ndbd]
nodeid=13
hostname=192.168.0.13
datadir=/usr/local/mysql/data

[ndbd]
nodeid=14
hostname=192.168.0.14
datadir=/usr/local/mysql/data
EOF

在这里插入图片描述

在SQL节点上创建MySQL用户和组:

groupadd mysql
useradd -r -g mysql -s /bin/false mysql

在这里插入图片描述

在SQL节点上创建MySQL数据目录:

mkdir /usr/local/mysql/data
mkdir /usr/local/mysql/logs

在这里插入图片描述

在SQL节点上设置MySQL目录属主、属组及权限:

chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql/logs

在这里插入图片描述

在SQL节点上编辑MySQL Cluster配置文件:

cat > /etc/my.cnf << EOF
[mysqld]
ndbcluster
ndb-connectstring=192.168.0.10

user=mysql
symbolic-links=0
socket=/tmp/mysql.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
pid-file=/usr/local/mysql/mysqld.pid
log-error=/usr/local/mysql/logs/mysqld.log
EOF

在这里插入图片描述

在SQL节点上初始化MySQL:

mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

在这里插入图片描述

在SQL节点上配置systemd管理MySQL:

cat > /usr/lib/systemd/system/mysqld.service << EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF

在这里插入图片描述

在SQL节点上启动MySQL:

systemctl start mysqld
systemctl status mysqld

在这里插入图片描述

在SQL节点上登录MySQL并设置密码:

grep 'temporary password' /usr/local/mysql/logs/mysqld.log
mysql -u root -p

在这里插入图片描述

ALTER USER 'root'@'localhost' IDENTIFIED BY 'PassWord8.0!';

在这里插入图片描述

在SQL节点上关闭MySQL,集群初始化时,重新启动:

systemctl stop mysqld

在这里插入图片描述

在数据节点上创建目录:

mkdir /usr/local/mysql/data

在这里插入图片描述

在数据节点上编辑MySQL Cluster配置文件:

cat > /etc/my.cnf << EOF
[mysql_cluster]
ndb-connectstring=192.168.0.10
EOF

在这里插入图片描述

2.2 MySQL Cluster初始化/启动

初始化/启动顺序:管理服务器->存储节点->SQL节点

在管理节点上初始化/启动管理节点:

ndb_mgmd -f /usr/local/mysql/config.ini --initial

–initial仅在初始化过程中使用

在这里插入图片描述

在数据节点上初始化/启动数据节点:

ndbd --initial

–initial仅在初始化过程中使用

在这里插入图片描述

在SQL节点上启动MySQL:

systemctl start mysqld
systemctl status mysqld

在这里插入图片描述

在管理节点上查看MySQL Cluster状态:

ndb_mgm -e show

在这里插入图片描述

在任意SQL节点上创建数据库和表:

CREATE DATABASE db;
CREATE TABLE db.tb (
	id int NOT NULL,
	name varchar(255) NULL,
	PRIMARY KEY (id)
) ENGINE=ndbcluster;

在这里插入图片描述

在任意SQL节点上插入数据:

INSERT INTO db.tb (id,name) VALUES (1,'MySQL');

在这里插入图片描述

在任意SQL节点上查看数据库、表和数据:

SHOW DATABASES;
DESCRIBE db.tb;
SELECT * FROM db.tb;

在这里插入图片描述

2.3 MySQL Cluster数据备份与恢复

MySQL Cluster数据备份:

在管理节点上备份数据:

ndb_mgm
start backup

在这里插入图片描述

在数据节点上查看备份文件:

ll /usr/local/mysql/data/BACKUP/BACKUP-1

在这里插入图片描述

在任意SQL节点上删除表:

DROP TABLE db.tb;

在这里插入图片描述

MySQL Cluster数据恢复:

在管理节点上关闭管理和数据节点:

ndb_mgm
shutdown

在这里插入图片描述

在SQL节点上关闭MySQL:

systemctl stop mysqld

在这里插入图片描述

在管理节点上修改MySQL Cluster配置文件:

echo [mysqld] >> /usr/local/mysql/config.ini
echo [mysqld] >> /usr/local/mysql/config.ini

在这里插入图片描述

在管理节点上重新加载管理节点:

ndb_mgmd -f /usr/local/mysql/config.ini --reload

在这里插入图片描述

在数据节点上启动数据节点:

ndbd --initial

在这里插入图片描述

在SQL节点上启动MySQL:

systemctl start mysqld
systemctl status mysqld

在这里插入图片描述

在任意数据节点恢复表格式,此处数据节点ID为13:

ndb_restore -n13 -b1 -m -r --backup_path=/usr/local/mysql/data/BACKUP/BACKUP-1

在这里插入图片描述

在数据节点恢复数据,此处数据节点ID为13:

ndb_restore -n13 -b1 -r --backup_path=/usr/local/mysql/data/BACKUP/BACKUP-1

在这里插入图片描述

在数据节点恢复数据,此处数据节点ID为14:

ndb_restore -n14 -b1 -r --backup_path=/usr/local/mysql/data/BACKUP/BACKUP-1

在这里插入图片描述

在任意SQL节点上查看数据库、表和数据:

SHOW DATABASES;
DESCRIBE db.tb;
SELECT * FROM db.tb;

在这里插入图片描述

2.4 关闭MySQL Cluster

关闭顺序:SQL节点->管理节点

在SQL节点上关闭MySQL:

systemctl stop mysqld

在这里插入图片描述

在管理节点上关闭管理和数据节点:

ndb_mgm
shutdown

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值