RH358配置MariaDB SQL数据库--安装MariaDB数据库

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: RH358配置MariaDB SQL数据库--安装MariaDB数据库

RH358配置MariaDB SQL数据库–安装MariaDB数据库

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

RH358专栏地址:https://blog.csdn.net/qq_41765918/category_11532281.html

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。
  • 如何进行安全化安装和进行连接管理。
  • 若喜欢金鱼哥的文章,顺手点个赞。也可点个关注,因为后续会不断上干货。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
5月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1034 152
|
5月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
812 156
|
5月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
5月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
582 7
|
5月前
|
SQL 监控 关系型数据库
查寻MySQL或SQL Server的连接数,并配置超时时间和最大连接量
以上步骤提供了直观、实用且易于理解且执行的指导方针来监管和优化数据库服务器配置。务必记得,在做任何重要变更前备份相关配置文件,并确保理解每个参数对系统性能可能产生影响后再做出调节。
596 11
|
7月前
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
591 0
|
5月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
442 158
|
5月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
5月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(中)
使用MYSQL Report分析数据库性能
419 156
|
5月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(上)
最终建议:当前系统是完美的读密集型负载模型,优化重点应放在减少行读取量和提高数据定位效率。通过索引优化、分区策略和内存缓存,预期可降低30%的CPU负载,同时保持100%的缓冲池命中率。建议每百万次查询后刷新统计信息以持续优化
524 161

热门文章

最新文章

推荐镜像

更多