Linux操作系统实验指导-实验04:使用MariaDB建设数据库集群服务

463 阅读10分钟

一、实验目的

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题。