一、实验目的
1、了解MariaDB数据库;
2、掌握MariaDB数据库集群的实现方法;
3、掌握使用Navicat管理MariaDB数据库集群。
二、实验学时
2学时
三、实验类型
综合性
四、实验需求
1、硬件
每个人配备计算机1台。
2、软件
安装VMware WorkStation Pro或Oracle VM VirtualBox软件,安装Mobaxterm软件。
安装Navicat软件。
3、网络
本地主机与虚拟机能够访问互联网,虚拟机网络不使用DHCP服务。
4、工具
无。
五、实验任务
1、完成MariaDB的安装;
2、完成使用MariaDB实现主备模式的数据库集群服务;
3、完成使用Navicat管理 MariaDB数据库集群,并进行数据库服务测试。
六、实验环境
1、本实验需要VM 3台。
2、本实验VM配置信息如下表所示。
| 虚拟机配置 | 操作系统配置 |
|---|---|
| 虚拟机名称:VM-Lab-04-Task-01-172.31.0.41内存:1GBCPU:1颗,1核心虚拟磁盘:20GB网卡:1块 | 主机名:Lab-04-Task-01IP地址:172.31.0.41子网掩码:255.255.255.0网关:172.31.0.254DNS:172.31.0.254 |
| 虚拟机名称:VM-Lab-04-Task-01-172.31.0.42内存:1GBCPU:1颗,1核心虚拟磁盘:20GB网卡:1块 | 主机名:Lab-04-Task-02IP地址:172.31.0.42子网掩码:255.255.255.0网关:172.31.0.254DNS:172.31.0.254 |
| 虚拟机名称:VM-Lab-04-Task-01-172.31.0.43内存:1GBCPU:1颗,1核心虚拟磁盘:20GB网卡:1块 | 主机名:Lab-04-Task-03IP地址:172.31.0.43子网掩码:255.255.255.0网关:172.31.0.254DNS:172.31.0.254 |
3、本实验拓扑图。
4、本实验操作演示视频。
本实验操作演示视频为视频集的第4集:www.bilibili.com/video/BV1b1…
七、实验内容步骤
1、在主机Lab-04-Task-01上完成MariaDB的安装
(1)使用VMware WorkStation Pro创建实验所需虚拟机,并完成openEuler操作系统安装与基本配置(配置网络、开启远程连接),具体操作步骤请参考《实验01:安装与基本配置》。
(2)使用yum工具安装MariaDB数据库,安装完成查看MariaDB数据库版本信息。
# 使用yum命令安装MariaDB
[root@Lab-04-Task-01 ~]# yum install -y mariadb-server
# 查看MariaDB版本信息
[root@Lab-04-Task-01 ~]# mariadb --version
(3)启动MariaDB服务并设置服务开机自启。
# 启动MariaDB服务
[root@Lab-04-Task-01 ~]# systemctl start mariadb
# 设置MariaDB为开机自启启动
[root@Lab-04-Task-01 ~]# systemctl enable mariadb
# 查看MariaDB服务运行状态
[root@Lab-04-Task-01 ~]# systemctl status mariadb
(4)初始化MariaDB数据库。
# 使用mysql_secure_installation命令初始化数据库
[root@Lab-04-Task-01 ~]# mysql_secure_installation
# --------------------初始化--------------------
# 输入root用户的密码进行验证,如未设置直接回车
Enter current password for root (enter for none):
# 是否使用 UNIX 套接字认证方式进行登录认证
Switch to unix_socket authentication [Y/n] y
# 是否设置root用户密码(设置root用户密码为:mariadblab#PWD)
Change the root password? [Y/n] y
New password:
Re-enter new password:
# 是否删除匿名用户
Remove anonymous users? [Y/n] y
# 是否取消root用户远程登录
Disallow root login remotely? [Y/n] n
# 是否删除test库和对test库的访问权限
Remove test database and access to it? [Y/n] y
# 是否刷新授权表使修改生效
Reload privilege tables now? [Y/n] y
# --------------------初始化--------------------
(5)配置防火墙策略。
# 查看防火墙Firewalld服务状态
[root@Lab-04-Task-01 ~]# systemctl status firewalld
# 添加本地客户端允许远程连接MariaDB数据库
[root@Lab-04-Task-01 ~]# firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=172.20.1.36 port port=3306 protocol=tcp accept'
# 重新载入防火墙配置使其生效
[root@Lab-04-Task-01 ~]# firewall-cmd --reload
🔔提醒:
1、openEuler操作系统默认安装Firewalld防火墙,并创建firewalld服务,该服务已开启且已配置为开机自启动。
2、如果Firewalld防火墙未启动,请使用命令systemctl start firewalld启动防火墙;如果Firewalld防火墙未设置为开机自启动,请使用命令systemctl enable firewalld设置为开机启动。
3、上述命令中“172.31.0.36”为本机IP地址,请根据实际情况替换IP地址。
2、在主机Lab-04-Task-02上完成MariaDB的安装
主机Lab-04-Task-02的安装过程与主机Lab-04-Task-01一致,请参照主机Lab-04-Task-01的安装过程完成安装。
3、在主机Lab-04-Task-03上完成MariaDB的安装
主机Lab-04-Task-03的安装过程与主机Lab-04-Task-01一致,请参照主机Lab-04-Task-01的安装过程完成安装。
4、配置主机Lab-04-Task-01为数据库集群的主节点
(1)修改数据库配置文件/etc/my.cnf,配置主机Lab-04-Task-01为主节点。
# 使用vi命令编辑/etc/my.cnf数据库配置文件
[root@Lab-04-Task-01 ~]# vi /etc/my.cnf
# --------------------/etc/my.cnf文件--------------------
[mariadb]
server-id=1
log-bin
# --------------------/etc/my.cnf文件--------------------
(2)在主节点(Lab-04-Task-01)上重启mariadb服务,确保配置生效。
# 重启MariaDB服务
[root@Lab-04-Task-01 ~]# systemctl restart mariadb
(3)在主节点(Lab-04-Task-01)上添加防火墙规则,使主机Lab-04-Task-02、Lab-04-Task-03能够和主机Lab-04-Task-01的MariaDB数据库联通,并重新载入防火墙配置使其生效。
# 添加防火墙规则使主机Lab-04-Task-02、Lab-04-Task-03能够和主机Lab-04-Task-01的MariaDB数据库联通
[root@Lab-04-Task-01 ~]# firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=172.31.0.42 port port=3306 protocol=tcp accept'
[root@Lab-04-Task-01 ~]# firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=172.31.0.43 port port=3306 protocol=tcp accept'
# 重新载入防火墙配置使其生效
[root@Lab-04-Task-01 ~]# firewall-cmd --reload
(4)在主节点(Lab-04-Task-01)上登录MariaDB数据库,创建用于执行同步的数据库用户“mariadblab”,授予其可复制权限。
# 登录MariaDB数据库
[root@Lab-04-Task-01 ~]# mysql -u root -p密码 # 将“密码”替换为root用户的密码
# 创建mariadb用户
MariaDB [(none)]> create user 'mariadblab'@'%';
# 设置密码
MariaDB [(none)]> alter user 'mariadblab'@'%' identified by 'mariadblab#PWD';
# 授予复制权限
MariaDB [(none)]> grant replication slave on *.* to 'mariadblab'@'%';
# 刷新权限
MariaDB [(none)]> flush privileges;
(5)在主节点(Lab-04-Task-01)上查看MariaDB数据库的主节点服务状态,记录主节点当前同步位置(需记录File和Position两个参数对应的值,如图4-2所示。
# 查看MariaDB数据库的主节点服务状态
MariaDB [(none)]> show master status;
# 推出数据库管理模式
MariaDB [(none)]> exit
5、配置主机Lab-04-Task-02为数据库集群的从节点-1
(1)修改数据库配置文件/etc/my.cnf,配置主机Lab-04-Task-02为从节点-1。
# 使用vi命令编辑/etc/my.cnf数据库配置文件
[root@Lab-04-Task-02 ~]# vi /etc/my.cnf
# --------------------/etc/my.cnf文件--------------------
[mariadb]
server-id=2
read-only=1
# --------------------/etc/my.cnf文件--------------------
(2)在从节点-1(Lab-04-Task-02)上重启mariadb服务,确保配置生效。
# 重启MariaDB服务
[root@Lab-04-Task-02 ~]# systemctl restart mariadb
(3)在从节点-1(Lab-04-Task-02)上登录MariaDB数据库,执行如下用于配置主从同步的SQL语句,启动主从集群同步服务并查看同步状态。
# 登录MariaDB数据库
[root@Lab-04-Task-02 ~]# mysql -u root -p密码
# 执行用于配置主从同步的SQL语句
MariaDB [(none)]> CHANGE MASTER TO
MASTER_HOST='172.31.0.41',
MASTER_USER='mariadblab',
MASTER_PASSWORD='mariadblab#PWD',
MASTER_PORT=3306,
MASTER_LOG_FILE='mariadb-bin.000002', #主节点当前同步位置对应的File参数值
MASTER_LOG_POS=918, #主节点当前同步位置对应的Position参数值
MASTER_CONNECT_RETRY=10;
# 启动主从集群同步服务
MariaDB [(none)]> start slave;
# 查看同步状态
MariaDB [(none)]> show slave status\G;
6、配置主机Lab-04-Task-03为数据库集群的从节点-2
(1)修改数据库配置文件/etc/my.cnf,配置主机Lab-04-Task-03为从节点-2。
# 使用vi命令编辑/etc/my.cnf数据库配置文件
[root@Lab-04-Task-03 ~]# vi /etc/my.cnf
# --------------------/etc/my.cnf文件--------------------
[mariadb]
server-id=3
read-only=1
# --------------------/etc/my.cnf文件--------------------
(2)在从节点-2(Lab-04-Task-03)上重启mariadb服务,确保配置生效。
# 重启MariaDB服务
[root@Lab-04-Task-03 ~]# systemctl restart mariadb
(3)在从节点-2(Lab-04-Task-03)上登录MariaDB数据库,执行如下用于配置主从同步的SQL语句,启动主从集群同步服务并查看同步状态。
# 登录MariaDB数据库
[root@Lab-04-Task-03 ~]# mysql -u root -p密码
# 执行用于配置主从同步的SQL语句
MariaDB [(none)]> CHANGE MASTER TO
MASTER_HOST='172.31.0.41',
MASTER_USER='mariadblab',
MASTER_PASSWORD='mariadblab#PWD',
MASTER_PORT=3306,
MASTER_LOG_FILE='mariadb-bin.000002',
MASTER_LOG_POS=918,
MASTER_CONNECT_RETRY=10;
# 启动主从集群同步服务
MariaDB [(none)]> start slave;
# 查看同步状态
MariaDB [(none)]> show slave status\G;
7、使用Navicat管理MariaDB数据库集群
(1)设置数据库访问权限
依次通过命令行形式进入3个数据库设置以下权限,允许所有地址远程访问。
MariaDB [(none)]> GRANT ALL ON *.* to root@'%' IDENTIFIED BY '数据库密码';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit
(2)从Navicat Premium的官方网站(www.navicat.com.cn)获取安装程序。
(3)依照向导安装Navicat Premium软件。
(4)打开Navicat Premium软件,单击“连接”,选择“MariaDB”,填写连接信息,依次连接3个数据库,如图4-3所示。
8、测试MariaDB数据库集群的主从同步
(1)设计不同场景来测试MariaDB集群的主从同步
| 场景 | 测试步骤 |
|---|---|
| 场景一 | 主节点创建数据库,查看从节点是否创建相同的数据库。 |
| 场景二 | 主节点删除数据库,查看从节点是否删除相同的数据库。 |
(2)主节点创建数据库,从节点实现同步创建。
使用Navicat Premium连接主节点(Lab-04-Task-01),并创建数据库“ceshi”,如图4-5所示。
使用Navicat Premium重新连接从节点-1(Lab-04-Task-02)和从节点-2(Lab-04-Task-03)查看在主节点中创建的“ceshi”数据库,是否存在。
(3)主节点创建数据库,从节点实现同步删除。
使用Navicat Premium连接主节点(Lab-04-Task-01),并删除数据库“ceshi”,如图4-6所示。
使用Navicat Premium重新连接从节点-1(Lab-04-Task-02)和从节点-2(Lab-04-Task-03)查看在主节点中删除的“ceshi”数据库,是否存在。
(4)测试结果
| 场景 | 测试步骤 | 真实测试结果 |
|---|---|---|
| 场景一 | 主节点创建数据库,查看从节点是否创建相同的数据库。 | 从节点创建与主节点相同数据库 |
| 场景二 | 主节点删除数据库,查看从节点是否删除相同的数据库。 | 从节点删除与主节点相同数据库 |
八、实验考核
实验考核分为【实验随堂查】和【实验线上考】两个部分。
实验随堂查:每个实验设置5个考核点。完成实验任务后,按照考核点要求,学生提交实验成果的截图或录屏视频。通过线上考核平台(如课堂派)进行作答。依据提交成果进行评分。
实验线上考:每个实验设置5道客观题。通过线上考核平台(如课堂派)进行作答。系统自动评分。
1、实验随堂查
本实验随堂查设置提交实验成果-5个截图/视频,具体如下:
题目1[文件题]:提交MariaDB安装完成后使用命令“mariadb --version”查看MariaDB版本信息的截图;
题目2[文件题]:提交在任意一台主机将MariaDB初始化完成后的截图;
题目3[文件题]:提交将主机Lab-04-Task-01配置为主节点后,查看MariaDB数据库的主节点服务状态的截图;
题目4[文件题]:提交使用Navicat连接到MariaDB数据库集群的截图;
题目5[文件题]:提交使用Navica连接主节点删除测试数据库,从节点会删除相同的数据库的录屏视频。
2、实验线上考
本实验线上考共5题。