金鱼哥RHCA回忆录:RH358配置MariaDB SQL数据库--安装MariaDB数据库

举报
金鱼哥 发表于 2022/05/02 20:55:58 2022/05/02
【摘要】 第七章 配置MariaDB SQL数据库--安装MariaDB数据库

第七章介绍如何配置数据库MariaDB,虽然涉及的不够深,但对于初学者来说,是一个好的开端,在358课程中,算比较实用的章节。

🎹 个人简介:大家好,我是 金鱼哥,CSDN运维领域新星创作者,华为云·云享专家
📚个人资质:CCNA、HCNP、CSNA(网络分析师),软考初级、中级网络工程师、RHCSA、RHCE、RHCA、RHCI、ITIL😜
💬格言:努力不一定成功,但要想成功就必须努力🔥


1. 描述关系数据库的重要性

关系数据库将结构化数据存储在一组相互关联的信息表中。这意味着一个表中的信息可以很容易地与另一个表中的信息相结合,以处理和提供关于该数据的报告,可能只使用每个表中选定的数据子集。

关系数据库管理系统relational database management system (RDBMS)是用来管理关系数据库的软件。大多数关系数据库管理系统允许使用Structured Query Language结构化查询语言(SQL)来查找和管理数据库中的数据。

许多人使用关系数据库存储库存跟踪、销售和财务信息的业务信息。关系数据库管理系统在许多应用程序堆栈中也扮演着关键角色。例如,许多需要支持动态内容生成的web应用程序都是围绕LAMP解决方案栈构建的,它包括:

  • 提供Linux操作系统的基本环境。

  • Apache HTTPS服务器(或其他web服务器,如Nginx)。

  • MariaDB、MySQL或其他关系数据库(如PostareSQL)来存储站点数据。

  • 一种由web服务器运行的编程语言,如PHP、Python、Perl、Ruby、Java、服务器端JavaScript或其他,可以更新数据库中的数据,并使用它动态地为用户构建web页面。

因为关系数据库通常与系统管理员管理的应用程序集成,所以即使您不是数据库管理员,也必须了解这些服务及其数据的安装和管理。


2. 安装MariaDB

Red Hat中包含了许多关系数据库管理系统Enterprise Linux 8。最常用的三个选项是MariaDB、MySQL和PostqreSQL。本课程以MariaDB为代表。MariaDB是MySQL的一个社区开发的分支,旨在与该数据库高度兼容,以便于从一个数据库转换到另一个数据库,并被广泛使用。

在RHEL 8中,MariaDB是由AppStream存储库提供的,这意味着它可能在一个比操作系统单独的生命周期中得到支持。这允许Red Hat在操作系统的生命周期期间提供更新版本的MariaDB作为一个选项,并且在软件的自然生命周期结束时停用旧版本的软件。

例如,MariaDB 10.3在2019年5月与RHEL 8.0.0一起提供,对它的支持将在2023年5月结束。有关更多信息,请参见https://access.redhat.com/support/policy/updates/rhel8pp-streams-life-cycle/。

可以用yum module list命令列出AppStream中的所有模块,或者用下面的命令查看MariaDB有哪些版本:

[root@host ~]# yum module list mariadb
Updating Subscription Management repositories.
Last metadata expiration check: 1:51:18 ago on Mon 15 Jun 2020 10:30:35 AM CDT.
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)
Name Stream Profiles Summary
mariadb 10.3 [d][e] client, galera, server [d] [i] MariaDB Module

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

要安装MariaDB 10.3和所有必要的服务器和客户端包,请使用特定的流安装MariaDB模块。

[root@host ~]# yum module install mariadb:10.3/server

重要:MariaDB和MySQL数据库服务器的RHEL 8 RPM包由于打包冲突不能同时安装,因为它们提供的命令和组件非常相似。

启动并启用mariadb服务。
[root@host ~]# systemctl enable --now mariadb

将mysql服务添加到防火墙中,允许远程访问MariaDB服务器。
[root@host ~]# firewall-cmd --permanent --add-service=mysql
[root@host ~]# firewall-cmd --reload

如果您只想安装客户端包,则可以使用以下命令。如果MariaDB运行在一个单独的系统上,并且您希望通过网络连接到它,则可能出现这种情况。
[root@host ~]# yum install mariadb

3. MariaDB的安全化安装

新的MariaDB服务的默认配置可能有一个测试数据库和一些不太安全的配置设置。运行mysql_secure_installation来配置更安全的默认值。

[root@host ~]# mysql_secure_installation

这个交互式脚本提示进行某些更改,包括:

  • 设置root帐户的密码。

  • 删除可以从本地主机外部访问的根帐户。

  • 删除匿名用户账户。

  • 删除用于演示的test数据库(如果存在的话)。


4. MariaDB的连接管理

MariaDB客户端可以通过两种方式连接到服务器。

如果客户端与服务器运行在同一台机器上,那么它可以连接到一个特殊的套接字文件来与MariaDB通信。这样更安全,因为MariaDB不需要监听来自网络客户端的连接。但是,如果您依赖于这种方法,那么使用数据库的所有客户机都需要运行在MariaDB服务器上,这可能会影响性能。

或者,客户端可以通过TCP/IP网络连接到MariaDB服务。远程客户端和运行在与MariaDB服务器相同主机上的客户端都可能使用此方法。如果启用此功能,服务器默认情况下监听端口3306/TCP上的连接。


控制网络的可用性

缺省情况下,这两种方法都是启用的。MariaDB监听所有系统的网络地址,以便连接到3306/TCP,套接字文件可用。

要完全关闭TCP/IP网络并依赖于本地套接字文件,或限制MariaDB将使用哪个网络地址,您需要编辑MariaDB配置。它的主要配置文件是/etc/my.cnf,但该文件自动包含/etc/my.conf.d目录中的所有文件作为配置文件的一部分。您可以通过向/etc/my.cnf.d/mariadb-server.cnf文件的[mysqld]部分添加指令来调整服务器的网络设置。


bind-address

这个指令指定了MariaDB用来监听客户端连接的网络地址。

只能输入一个选项。可能的选项包括:

单个IPv4地址

单个IPv6地址。

::连接到所有可用地址(IPv6和IPv4)。

所有IPv4地址保留为空(或设置为0.0.0.0)。

如果希望本地客户端能够使用网络连接而不允许远程访问MariaDB,则可以使用127.0.0.1或::1作为网络地址。

重要:只能使用一个绑定地址表项。在一个有多个地址的系统上,你可以使用这个指令来选择所有地址或一个地址,但不是几个地址。


skip-networking

如果在配置文件的[mysqld]部分设置了skip-networking或skip-networking=1,则组网被禁用,客户端必须使用socket文件与MariaDB通信。这限制了对与MariaDB相同系统上的客户机的访问。

如果您设置了skip-networking=o(如果没有设置则为默认值),MariaDB将监听网络连接。


port

可以使用这个设置来指定一个网络端口而不是3306/TCP。


重要:如果已经启用了系统的防火墙,不要忘记允许连接到MariaDB服务的端口,如前所述为了允许用户远程访问MariaDB,还需要在MariaDB服务中配置用户帐号、MariaDB密码和数据库权限。


5. 课本练习

[student@workstation ~]$ lab database-intro start

要求您在servera上安装MariaDB数据库服务器。安装并保护MariaDB服务,并将其配置为只接受来自本地客户端的连接。

1. 安装mariadb-server包。

[root@servera ~]# yum -y install mariadb-server

2. 启动并启用mariadb服务。

[root@servera ~]# systemctl enable --now mariadb

3. 配置mariadb只监听本地客户端。

# 使用skip-networking=1指令只监听本地客户端。
[root@servera ~]# vim /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mariadb/mariadb.log
pid-file=/run/mariadb/mariadb.pid
skip-networking=1

[root@servera ~]# systemctl restart mariadb

# 确认MariaDB守护进程mysqld不再监听所有接口。
[root@servera ~]# ss -tulpn | grep mysqld
[root@servera ~]#

4. 使用mysql_secure_installation命令保护MariaDB服务。

# 将root用户密码设置为redhat,其余问题均回答Y[root@servera ~]# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password:  redhat
Re-enter new password: redhat
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

# 验证root用户在没有密码的情况下不能登录。
[root@servera ~]# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

# 确认测试数据库已被删除。
[root@servera ~]# mysql -u root -p
Enter password: redhat
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
MariaDB [(none)]> exit;
Bye

完成实验

[student@workstation ~]$ lab database-intro finish


总结

  • 介绍数据库的重要性。
  • 如何安装MariaDB。
  • 如何进行安全化安装和进行连接管理。

RHCA认证需要经历5门的学习与考试,还是需要花不少时间去学习与备考的,好好加油,可以噶🤪。

以上就是【金鱼哥】对 第七章 配置MariaDB SQL数据库–安装MariaDB数据库 的简述和讲解。希望能对看到此文章的小伙伴有所帮助。

💾红帽认证专栏系列:
RHCSA专栏:戏说 RHCSA 认证
RHCE专栏:戏说 RHCE 认证
此文章收录在RHCA专栏:RHCA 回忆录

如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点。

如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。