如何在 Debian 11 上安装 MariaDB

介绍

MariaDB是一个开源的关系式数据库管理系统,通常用作MySQL的替代品,作为流行的LAMP(https://andsky.com/tech/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-debian-11)(Linux,Apache,MySQL,PHP/Python/Perl)数据库堆栈的数据库部分。

此安装指南的简短版本包括以下三个步骤:

  • 使用 apt 更新您的包索引 * 使用 apt 安装 mariadb-server 包. 该包还引入相关工具与 MariaDB 互动 * 运行包含的 mysql_secure_installation 安全脚本以限制访问服务器
1sudo apt update
2sudo apt install mariadb-server
3sudo mysql_secure_installation

本教程将解释如何在 Debian 11 服务器上安装 MariaDB,并验证它是否正在运行并具有安全的初始配置。

前提条件

  • 要遵循本教程,您将需要运行 Debian 11 的服务器。本服务器应该具有非根管理用户和与 UFW 配置的防火墙。

步骤 1 – 安装 MariaDB

截至本文,Debian 11 的默认软件存储库包括 MariaDB 版本 10.5.15。Debian MySQL/MariaDB 包装团队将其标记为默认 MySQL 变体。

要安装它,请用apt更新服务器上的包索引:

1sudo apt update

然后安装包:

1sudo apt install mariadb-server

这些命令会安装MariaDB,但不会提示您设置密码或进行任何其他配置更改. 由于默认配置使MariaDB的安装不安全,您将使用mariadb-server包提供的脚本来限制访问服务器并删除未使用的帐户。

步骤 2 – 配置 MariaDB

对于新的 MariaDB 安装,下一步是运行包含的安全脚本. 此脚本会更改一些不安全的默认选项,例如远程 root 登录和样本用户。

运行安全脚本:

1sudo mysql_secure_installation

这将带您通过一系列提示,您可以对 MariaDB 安装的安全选项做出一些更改。第一个提示将要求您输入当前数据库 root 密码。

 1[secondary_label Output]
 2NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
 3      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 4
 5In order to log into MariaDB to secure it, you'll need the current
 6password for the root user. If you've just installed MariaDB, and
 7you haven't set the root password yet, the password will be blank,
 8so you should just press enter here.
 9
10Enter current password for root (enter for none):

您将被问及是否要切换到 unix 接口身份验证. 由于您已经拥有受保护的 root 帐户,您可以跳过此步骤。

1[secondary_label Output]
2. . .
3Setting the root password or using the unix_socket ensures that nobody
4can log into the MariaDB root user without the proper authorisation.
5
6You already have your root account protected, so you can safely answer 'n'.
7
8Switch to unix_socket authentication [Y/n] n

在 Debian 11 上, MariaDB 的 root 帐户与自动系统维护密切相关,因此您不应该更改为该帐户配置的身份验证方法。

这样做会使包更新能够通过删除访问管理帐户来破坏数据库系统,然后键入n,然后按ENTER

1[secondary_label Output]
2Change the root password? [Y/n]

稍后,您将讨论如何为密码访问设置额外的管理帐户,如果插件身份验证不适合您的使用案例。

从那里,您可以按Y,然后按ENTER,以接受所有后续问题的默认值。这将删除一些匿名用户和测试数据库,禁用远程 root 登录,并加载这些新规则,以便MariaDB立即实施您所做的更改。

通过此,您已经完成了MariaDB的初始安全配置。下一步是可选的,尽管您应该遵循它,如果您喜欢使用密码对MariaDB服务器进行身份验证。

步骤 3 — (可选) 创建使用密码身份验证的管理用户

在运行 MariaDB 10.5 的 Debian 系统上, root MariaDB 用户被设置为使用unix_socket插件默认身份验证,而不是使用密码。

由于服务器使用 root 帐户进行日志旋转和开始和停止服务器等任务,所以最好不要更改 ** root** 帐户的身份验证细节。在 `/etc/mysql/debian.cnf 配置文件中更改身份验证文件可能起初起作用,但更新包可能会重写这些更改。

为此,我们将创建一个名为 admin 的新帐户,具有与 root 帐户相同的功能,但配置用于密码验证。

1sudo mariadb

然后创建一个具有 root 权限和基于密码的访问权限的新用户. 请确保更改用户名和密码以匹配您的偏好:

1GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

清除权限,以确保它们在当前会话中存储和可用:

1FLUSH PRIVILEGES;

接下来,输出 MariaDB 壳:

1exit

最后,让我们来测试MariaDB的安装。

第4步:测试MariaDB

当从默认存储库安装时,MariaDB 将自动启动运行。

1sudo systemctl status mariadb

您将收到类似于以下的输出:

1[secondary_label Output]
2 mariadb.service - MariaDB 10.5.15 database server
3     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
4     Active: active (running) since Fri 2022-03-11 22:01:33 UTC; 14min ago
5       Docs: man:mariadbd(8)
6             https://mariadb.com/kb/en/library/systemd/
7. . .

如果 MariaDB 未运行,则可以使用sudo systemctl start mariadb命令启动。

为了进行额外的检查,您可以尝试使用mysqladmin工具连接到数据库,这是一个客户端,允许您运行管理命令。

1sudo mysqladmin version

您将收到类似于此的输出:

 1[secondary_label Output]
 2mysqladmin Ver 9.1 Distrib 10.5.15-MariaDB, for debian-linux-gnu on x86_64
 3Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
 4
 5Server version 10.5.15-MariaDB-0+deb11u1
 6Protocol version 10
 7Connection Localhost via UNIX socket
 8UNIX socket             /run/mysqld/mysqld.sock
 9Uptime:                 4 min 20 sec
10
11Threads: 1 Questions: 72 Slow queries: 0 Opens: 32 Open tables: 25 Queries per second avg: 0.276

结论

在本指南中,您安装了 MariaDB 关系数据库管理系统,并使用它安装的mysql_secure_installation脚本加以保护,您还可以选择创建一个使用密码身份验证的新管理用户,然后测试 MariaDB 服务器的功能。

现在你有一个运行和安全的MariaDB服务器,这里有一些下一步的例子,你可以采取与服务器的工作:

Published At
Categories with 技术
comments powered by Disqus