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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 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 
目录
相关文章
|
4月前
|
SQL 存储 关系型数据库
第二篇:关系型数据库的核心概念与 SQL 基础
本篇内容深入浅出地讲解了关系型数据库的核心概念与SQL基础,适合有一定计算机基础的学习者。文章涵盖数据库的基本操作(CRUD)、数据类型、表的创建与管理等内容,并通过实例解析SELECT、INSERT、UPDATE、DELETE等语句的用法。此外,还推荐了多种学习资源与实践建议,帮助读者巩固知识。学完后,你将掌握基础数据库操作,为后续高级学习铺平道路。
196 1
|
3月前
|
SQL 关系型数据库 MySQL
Go语言数据库编程:使用 `database/sql` 与 MySQL/PostgreSQL
Go语言通过`database/sql`标准库提供统一数据库操作接口,支持MySQL、PostgreSQL等多种数据库。本文介绍了驱动安装、连接数据库、基本增删改查操作、预处理语句、事务处理及错误管理等内容,涵盖实际开发中常用的技巧与注意事项,适合快速掌握Go语言数据库编程基础。
207 62
|
5月前
|
Ubuntu 关系型数据库 Linux
Linux数据库安装
本文介绍了在CentOS 8.0和Ubuntu 22.04系统上安装、配置和启动MariaDB数据库服务器的详细步骤。包括通过`yum`和`apt`包管理器安装MariaDB服务,启动并检查服务运行状态,设置root用户密码以及连接数据库的基本操作。此外,还展示了如何在Ubuntu上更新软件包列表、安装依赖项,并验证MariaDB的版本和运行状态。通过这些步骤,用户可以成功部署并初始化MariaDB环境,为后续数据库管理与应用开发奠定基础。
230 61
|
2月前
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
192 0
|
4月前
|
SQL 关系型数据库 MySQL
MySQL下载安装全攻略!小白也能轻松上手,从此数据库不再难搞!
这是一份详细的MySQL安装与配置教程,适合初学者快速上手。内容涵盖从下载到安装的每一步操作,包括选择版本、设置路径、配置端口及密码等。同时提供基础操作指南,如数据库管理、数据表增删改查、用户权限设置等。还介绍了备份恢复、图形化工具使用和性能优化技巧,帮助用户全面掌握MySQL的使用方法。附带常见问题解决方法,保姆级教学让你无忧入门!
MySQL下载安装全攻略!小白也能轻松上手,从此数据库不再难搞!
|
3月前
|
SQL 人工智能 关系型数据库
GitHub 热门!MindsDB 破解 AI + 数据库瓶颈,究竟有什么惊艳亮点?只需 SQL 即可实现智能预测
MindsDB 是一款将 AI 能力直接注入数据库的开源工具,支持 MySQL、PostgreSQL 等多种数据库连接,通过 SQL 即可完成模型训练与预测。它提供 AutoML 引擎、LLM 集成、联邦查询等功能,简化 MLOps 流程,实现数据到智能的无缝衔接。项目在 GitHub 上已获 32.4k 星,社区活跃,适用于客户流失预警、推荐系统、情感分析等场景。开发者无需深入模型细节,即可快速构建智能解决方案。项目地址:https://github.com/mindsdb/mindsdb。
244 0
|
5月前
|
关系型数据库 MySQL 大数据
大数据新视界--大数据大厂之MySQL 数据库课程设计:MySQL 数据库 SQL 语句调优的进阶策略与实际案例(2-2)
本文延续前篇,深入探讨 MySQL 数据库 SQL 语句调优进阶策略。包括优化索引使用,介绍多种索引类型及避免索引失效等;调整数据库参数,如缓冲池、连接数和日志参数;还有分区表、垂直拆分等其他优化方法。通过实际案例分析展示调优效果。回顾与数据库课程设计相关文章,强调全面认识 MySQL 数据库重要性。为读者提供综合调优指导,确保数据库高效运行。
|
5月前
|
SQL IDE 关系型数据库
JetBrains DataGrip 2025.1 发布 - 数据库和 SQL 跨平台 IDE
JetBrains DataGrip 2025.1 (macOS, Linux, Windows) - 数据库和 SQL 跨平台 IDE
293 0
|
NoSQL 关系型数据库 MySQL
阿里云RDS关系型数据库大全_MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等
阿里云RDS关系型数据库如MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等,NoSQL数据库如Redis、Tair、Lindorm和MongoDB
442 0
|
关系型数据库 Java MySQL
Linux安装JDK1.8 & tomcat & MariaDB(MySQL删减版)
本教程提供了在Linux环境下安装JDK1.8、Tomcat和MariaDB的详细步骤。这三个组件的组合为Java Web开发和部署提供了一个强大的基础。通过遵循这些简单的指导步骤,您可以轻松建立起一个稳定、高效的开发和部署环境。希望这个指导对您的开发工作有所帮助。
395 8

热门文章

最新文章

推荐镜像

更多