本教程适用于以下操作系统版本
- Debian 12(Bookworm)
- Debian 10(Buster)
本页内容
- 前置条件
- 在 Debian 上安装 Adminer
- 加固 Adminer 安装
- 配置 MySQL/MariaDB 服务器
- 通过 Adminer 登录 MySQL 服务器
- 通过 Adminer 创建新数据库和用户
- 结语
Adminer(前身为 phpMinAdmin)是一款使用 PHP 编写的功能完备的数据库管理工具,既支持 MySQL/MariaDB、PostgreSQL、SQLite、MS SQL 和 Oracle 等关系型数据库管理系统(RDBMS),也支持 MongoDB 等 NoSQL 数据库(通过插件)。
Adminer 是 phpMyAdmin 的替代品。它是一款轻量、易用且高性能的数据库管理工具,可轻松用于管理你的各类数据库。
在本指南中,我们将演示如何在 Debian 12 服务器上安装 Adminer 数据库管理工具。你还将通过 Apache 的 basic_auth 模块来加固 Adminer。
前置条件
在开始之前,请确保你已具备以下条件:
- 一台 Debian 12 服务器。
- 一个拥有管理员权限的非 root 用户。
- 已安装 MySQL/MariaDB 数据库。
在 Debian 上安装 Adminer
Adminer 是 phpMyAdmin 的替代品,同时也支持 PostgreSQL 数据库。它同样使用 PHP 编写,几乎可以在任何搭载 Apache 或 Nginx Web 服务器的操作系统上运行。
在 Debian 上,adminer 软件包默认可用,你可以轻松地通过仓库安装它。我们建议在一台全新的服务器上安装 adminer,因为它会自动安装 PHP 软件包和 Apache Web 服务器。
在安装 adminer 之前,请使用以下命令更新你的 Debian 软件包索引。
sudo apt update

使用以下命令在默认的 Debian 仓库中查找 adminer 软件包。
sudo apt info adminer
如下图所示,adminer 软件包在 Debian 仓库的 `web` 分类下可用,要求至少 PHP 8.2 和 Apache Web 服务器。

现在使用以下命令安装 adminer。这会同时自动安装 PHP 和 Apache 等所需软件包。输入 y 确认安装。
sudo apt install adminer

安装完成后,使用以下命令验证 Apache 服务。确保 Apache 服务正在运行。
sudo systemctl status apache2

加固 Adminer 安装
既然你已经安装了 adminer,下一步就是配置你的 adminer 安装。在本示例中,你将更改 Adminer 的默认 URL 路径,并通过 basic_auth 添加额外的认证。这样,你将拥有两层认证。
另外,你需要知道,adminer 会在 /etc/apache2/conf-available/adminer.conf 生成新的 Apache 配置文件。你将修改此文件来配置 adminer 安装。
在编辑配置之前,运行以下命令生成密码文件 /etc/adminer/.htpasswd。同时,请务必将用户名 dbmanager 替换为你自己的用户。
/etc/adminer/.htpasswd 将作为 Adminer 通过 Apache basic_auth 模块的额外认证使用。
sudo htpasswd -B -c /etc/adminer/.htpasswd dbmanager
出现提示时输入你的密码并重复确认。

现在使用 nano 编辑器打开为 adminer 生成的 Apache 配置文件 /etc/apache2/conf-available/adminer.conf。
sudo nano /etc/apache2/conf-available/adminer.conf
在第一行中,将 '/adminer' 的默认 URL 更改为新的 URL 路径。本示例中,adminer 将通过 URL 路径 ' /dbmanager ' 访问。
Alias /dbmanager /etc/adminer <Directory /etc/adminer> Require all granted DirectoryIndex conf.php </Directory>
插入以下配置,为 ' /dbmanager ' 路径启用 Apache basic_auth。这样,每次访问 ' /dbmanager ' 路径时,都会提示你进行额外的 Apache basic_auth 认证。
<Location /dbmanager> AuthType Basic AuthName "Restricted Resource" AuthBasicProvider file AuthUserFile /etc/adminer/.htpasswd Require valid-user </Location>
完成后保存并关闭文件。
接下来,运行以下命令在 Apache 上启用附加配置 'adminer.conf',并验证 Apache 的整体语法。
sudo a2enconf adminer.conf
sudo apachectl configtest
确保语法正确,并看到类似 Syntax OK 的输出。

最后,运行以下命令重启 Apache 服务,并应用 Adminer 的新配置。执行该命令后,你的 Adminer 安装应该就准备就绪了。
sudo systemctl restart apache2
配置 MySQL/MariaDB 服务器
至此,你的 Adminer 已经就绪,但你仍需为 MySQL 服务器创建一个专用于 Adminer 登录的新用户来做好准备。不建议直接使用 root 用户。
Note: If you're connecting through a remote host, make sure you're via SSH tunneling to encrypt your connection. If you're using a single server (MySQL + Adminer on the same server), you're ready to go.
使用以下命令登录 MySQL/MariaDB 服务器。出现提示时输入你的 MySQL root 密码。
sudo mysql -u root -p
运行以下查询,为你的 MySQL 服务器创建一个名为 dbmanager 的新用户。本示例中,该用户将用于通过 Adminer 登录 MySQL 服务器。因此,请务必将下列密码替换为新的密码。
CREATE USER 'dbmanager'@'127.0.0.1' IDENTIFIED BY 'dbpassword';
GRANT ALL PRIVILEGES ON *.* TO 'dbmanager'@'127.0.0.1' WITH GRANT OPTION;
FLUSH PRIVILEGES;

现在,运行以下查询验证 MySQL 服务器中的用户列表。你应该会看到用户 dbmanager,其默认主机为 127.0.0.1。
SELECT user,host FROM mysql.user;

最后,输入 quit 退出 MySQL 服务器。
通过 Adminer 登录 MySQL 服务器
打开你的网页浏览器,访问 Adminer 安装 URL http://192.168.5.15/dbmanager。如果安装成功,你将会看到 basic_auth 认证提示。输入你创建的用户名和密码,然后点击 Sign In(登录)。

登录成功后,你应该会看到 Adminer 的登录页面。现在将数据库系统选择为 MySQL,然后输入 MySQL 服务器的主机、端口、用户名和密码信息。点击 Login(登录)确认。

如果你的数据库凭据正确,你就应该能通过 Adminer 连接到 MySQL。

通过 Adminer 创建新数据库和用户
在本节中,你将学习如何通过 Adminer 在 MySQL/MariaDB 上创建新数据库和用户。随后,你还将使用新用户登录到新数据库。
在 Adminer 仪表盘上,点击 Create Database(创建数据库)链接。你将看到如下页面。
输入你的新数据库名称并点击 Save(保存)。本示例中,你将创建一个名为 testdb 的新数据库。

接下来,要创建新的 MySQL/MariaDB 用户,请点击仪表盘上的 Privileges(权限),然后点击 Create user(创建用户)。

输入数据库用户名和密码,然后在权限部分输入你的数据库名称。向下滚动并点击 Save(保存)。
在下面的示例中,你将创建一个名为 testuser 的新用户,并赋予该用户访问 testdb 数据库的权限。

最后,使用用户 testuser 登录 Adminer 并访问数据库 testdb。

如果成功,你就应该已经通过 Adminer 登录到 testdb。
图片

结语
恭喜!你已成功在 Debian 12 服务器上将 Adminer 安装为 MySQL/MariaDB 和 PostgreSQL 的数据库管理工具。你还通过更改默认 URL 路径并启用 Apache basic_auth 模块提供的额外认证层,加固了 Adminer。最后,你已经通过 Adminer 工具登录了 MySQL 服务器。