介绍
MariaDB 是一个开源的关系数据库管理系统,通常用作 MySQL 的替代品,作为流行的 LAMP(Linux、Apache、MySQL、PHP/Python/Perl)的数据库部分) 堆。 它旨在成为 MySQL 的替代品。
本安装指南的简短版本包括以下三个步骤:
- 使用
apt
更新你的包索引 - 使用
apt
安装mariadb-server
包。 该软件包还引入了与 MariaDB 交互的相关工具 - 运行包含的
mysql_secure_installation
安全脚本来限制对服务器的访问
sudo apt update sudo apt install mariadb-server sudo mysql_secure_installation
本教程将解释如何在 Ubuntu 20.04 服务器上安装 MariaDB,并验证它是否正在运行并具有安全的初始配置。
先决条件
要学习本教程,您需要一台运行 Ubuntu 20.04 的服务器。 此服务器应具有非 root 管理用户和配置了 UFW 的防火墙。 按照 我们的 Ubuntu 20.04 初始服务器设置指南进行设置。
您还可以使用嵌入在此页面上的交互式终端来尝试在本教程中安装和配置 MariaDB。 单击下面的Launch an Interactive Terminal!
按钮开始使用。
启动交互式终端!
第 1 步 — 安装 MariaDB
在撰写本文时,Ubuntu 20.04 的默认 APT 存储库包括 MariaDB 版本 10.3。
要安装它,请使用 apt
更新服务器上的包索引:
sudo apt update
然后安装包:
sudo apt install mariadb-server
使用 systemctl start
命令确保 MariaDB 正在运行:
sudo systemctl start mariadb.service
这些命令将安装和启动 MariaDB,但不会提示您设置密码或进行任何其他配置更改。 因为默认配置使您的 MariaDB 安装不安全,我们将使用 mariadb-server
包提供的脚本来限制对服务器的访问并删除未使用的帐户。
第 2 步 — 配置 MariaDB
对于新的 MariaDB 安装,下一步是运行包含的安全脚本。 此脚本更改了一些不太安全的默认选项,例如远程 root 登录和示例用户。
运行安全脚本:
sudo mysql_secure_installation
这将引导您完成一系列提示,您可以在其中对 MariaDB 安装的安全选项进行一些更改。 第一个提示会要求你输入当前数据库的root密码。 由于您还没有设置,请按ENTER
表示“无”。
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, 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):
下一个提示询问您是否要设置数据库 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.3 的 Ubuntu 系统上,root MariaDB 用户默认设置为使用 unix_socket
插件进行身份验证,而不是使用密码。 这在许多情况下允许更高的安全性和可用性,但是当您需要允许外部程序(例如,phpMyAdmin)管理权限时,它也会使事情复杂化。
由于服务器使用 root 帐户执行日志轮换和启动和停止服务器等任务,因此最好不要更改 root 帐户的身份验证详细信息。 在 /etc/mysql/debian.cnf
配置文件中更改凭据最初可能有效,但包更新可能会覆盖这些更改。 包维护者建议不要修改 root 帐户,而是为基于密码的访问创建一个单独的管理帐户。
为此,我们将创建一个名为 admin 的新帐户,该帐户具有与 root 帐户相同的功能,但配置为密码验证。 从终端打开 MariaDB 提示符:
sudo mariadb
然后创建一个具有 root 权限和基于密码访问权限的新用户。 请务必更改用户名和密码以匹配您的偏好:
GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
刷新权限以确保它们已保存并在当前会话中可用:
FLUSH PRIVILEGES;
在此之后,退出 MariaDB shell:
exit
最后,让我们测试一下 MariaDB 的安装。
第 4 步 — 测试 MariaDB
从默认存储库安装后,MariaDB 将自动开始运行。 要对此进行测试,请检查其状态。
sudo systemctl status mariadb
您将收到类似于以下内容的输出:
Output● mariadb.service - MariaDB 10.3.22 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-05-12 13:38:18 UTC; 3min 55s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 25914 (mysqld) Status: "Taking your SQL requests now..." Tasks: 31 (limit: 2345) Memory: 65.6M CGroup: /system.slice/mariadb.service └─25914 /usr/sbin/mysqld . . .
如果 MariaDB 没有运行,您可以使用命令 sudo systemctl start mariadb
启动它。
如需进一步检查,您可以尝试使用 mysqladmin
工具连接到数据库,该工具是一个允许您运行管理命令的客户端。 例如,此命令表示使用 Unix 套接字以 root 身份连接到 MariaDB 并返回版本:
sudo mysqladmin version
您将收到与此类似的输出:
Outputmysqladmin Ver 9.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu on x86_64 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Server version 10.3.22-MariaDB-1ubuntu1 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: 4 min 49 sec Threads: 7 Questions: 467 Slow queries: 0 Opens: 177 Flush tables: 1 Open tables: 31 Queries per second avg: 1.615
如果您为单独的管理用户配置了密码身份验证,则可以通过键入以下内容执行相同的操作:
mysqladmin -u admin -p version
这意味着 MariaDB 已启动并正在运行,并且您的用户能够成功进行身份验证。
结论
在本指南中,您安装了 MariaDB 关系数据库管理系统,并使用随附的 mysql_secure_installation
脚本对其进行保护。 在测试 MariaDB 服务器的功能之前,您还可以选择创建一个使用密码身份验证的新管理用户。
现在您已经拥有一个正在运行且安全的 MariaDB 服务器,下面是一些您可以使用该服务器执行的后续步骤的示例: