介绍
MariaDB是一个开源的关系型数据库管理系统,通常被用作流行的LAMP(Linux、Apache、MySQL、PHP/Python/Perl)堆栈中的数据库部分的替代选择。它旨在成为MySQL的一个即插即用的替代品。
这个安装指南的简短版本包括以下三个步骤:
- 使用
apt
更新您的软件包索引 - 使用
apt
安装mariadb-server
软件包。该软件包还会拉取相关工具以与MariaDB交互 - 运行包含的
mysql_secure_installation
安全脚本以限制对服务器的访问
本教程将解释如何在Ubuntu 22.04服务器上安装MariaDB,并验证其是否正在运行并具有安全的初始配置。
先决条件
- 要跟随本教程,您需要运行Ubuntu 22.04的服务器。该服务器应该有一个非root管理员用户,并配置了UFW防火墙。按照我们的Ubuntu 22.04初始服务器设置指南进行设置。
步骤1 — 安装MariaDB
截至撰写本文时,Ubuntu 22.04的默认APT存储库包含MariaDB版本10.5.12。
要安装它,请使用apt
更新服务器上的软件包索引:
然后安装软件包:
这些命令将安装MariaDB,但不会提示您设置密码或进行任何其他配置更改。因为默认配置会使您的MariaDB安装不安全,所以您将使用mariadb-server
软件包提供的脚本来限制对服务器的访问并删除未使用的帐户。
步骤2 — 配置MariaDB
对于新的MariaDB安装,下一步是运行包含的安全脚本。该脚本会更改一些较不安全的默认选项,例如远程root登录和示例用户。
运行安全脚本:
这将引导您完成一系列提示,您可以在其中对MariaDB安装的安全选项进行一些更改。第一个提示将要求您输入当前数据库root密码。由于您尚未设置密码,请按ENTER
表示“none”。
OutputNOTE: 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, you'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):
接下来会询问您是否要切换到Unix套接字认证。由于您已经有一个受保护的root账户,您可以跳过此步骤。输入n
,然后按ENTER
。
Output. . .
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] n
下一个提示会问您是否要设置数据库root密码。在Ubuntu上,MariaDB的root账户与自动系统维护密切相关,因此您不应更改该账户的配置认证方法。
这样做会使得软件包更新可能会通过移除对管理员账户的访问来破坏数据库系统。输入n
,然后按ENTER
。
Output. . .
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] n
稍后,您将学习如何为密码访问设置额外的管理账户,如果套接字认证不适合您的用例。
从那里开始,您可以按Y
,然后按ENTER
接受所有后续问题的默认值。这将删除一些匿名用户和测试数据库,禁用远程root登录,并加载这些新规则,以便MariaDB立即实施您所做的更改。
通过这样,您已经完成了MariaDB的初始安全配置。下一步是可选的,但如果您希望使用密码对您的MariaDB服务器进行身份验证,则应该遵循这一步骤。
步骤 3 —(可选)创建一个使用密码认证的管理员用户
在运行MariaDB 10.5的Ubuntu系统中,默认情况下将root MariaDB用户设置为使用unix_socket
插件进行身份验证,而不是使用密码。这在许多情况下可以提供更高的安全性和可用性,但当您需要允许外部程序(例如phpMyAdmin)具有管理权限时,它也可能会复杂化事情。
由于服务器使用root帐户执行诸如日志轮换、启动和停止服务器等任务,因此最好不要更改root帐户的身份验证详细信息。在/etc/mysql/debian.cnf
配置文件中更改凭据可能起初有效,但软件包更新可能会覆盖这些更改。软件包维护者建议不要修改root帐户,而是创建一个单独的基于密码的管理员帐户。
为此,我们将创建一个名为admin的新帐户,具有与root帐户相同的功能,但配置为密码验证。从您的终端打开MariaDB提示符:
然后创建一个具有root特权和基于密码的访问的新用户。确保更改用户名和密码以匹配您的偏好:
刷新权限以确保它们被保存并在当前会话中可用:
然后退出MariaDB shell:
最后,让我们测试MariaDB安装。
步骤 4 — 测试 MariaDB
当从默认存储库安装时,MariaDB将自动运行。要测试这一点,请检查其状态。
您将收到类似以下的输出:
Output● mariadb.service - MariaDB 10.5.12 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-03-11 22:01:33 UTC; 14min ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
. . .
如果MariaDB没有运行,您可以使用命令sudo systemctl start mariadb
启动它。
作为额外的检查,您可以尝试使用mysqladmin
工具连接到数据库,该工具是允许您运行管理命令的客户端。例如,此命令表示使用Unix套接字连接到MariaDB作为root并返回版本:
您将收到类似于此的输出:
Outputmysqladmin Ver 9.1 Distrib 10.5.12-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Server version 10.5.12-MariaDB-1build1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /run/mysqld/mysqld.sock
Uptime: 15 min 53 sec
Threads: 1 Questions: 482 Slow queries: 0 Opens: 171 Open tables: 28 Queries per second avg: 0.505
结论
在本指南中,您安装了MariaDB关系数据库管理系统,并使用安装时附带的mysql_secure_installation
脚本对其进行了安全设置。您还可以选择创建一个新的管理用户,该用户在测试MariaDB服务器功能之前使用密码进行身份验证。
现在您已经拥有一个运行且安全的MariaDB服务器,以下是您可以采取的一些下一步操作示例:
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-mariadb-on-ubuntu-22-04