如何使用Adminer通过单个PHP文件轻松管理数据库

管理MySQL数据库是成为专业WordPress开发人员的基本要求之一。Adminer极大地简化了该任务。

每个WordPress站点都需要一个数据库才能运行——它是WordPress存储所有站点关键数据的地方。虽然phpMyAdmin多年来一直是MySQL/MariaDB数据库管理的主要工具,但 Adminer 是一个很好的选择。它加载了大量有用的功能和更漂亮的用户界面,所有这些都在一个轻量级的PHP文件中,您可以在您的服务器上快速部署。

在这篇文章中,您将了解Adminer、它比phpMyAdmin提供的许多好处,以及如何使用它来管理您的数据库。

  1. 什么是Adminer?
  2. 如何使用Adminer
  3. Adminer功能
  4. Adminer插件
  5. Adminer主题
  6. Adminer vs phpMyAdmin
  7. 如何在WordPress中使用Adminer

什么是Adminer?

Adminer(以前称为phpMinAdmin)是一个基于PHP的免费开源数据库管理工具。在您的服务器上部署非常简单。要使用它,您所要做的就是上传它的单个PHP文件,将浏览器指向它,然后登录。

如何使用Adminer通过单个PHP文件轻松管理数据库

Adminer登录页面

phpMyAdmin仅支持管理MySQLMariaDB数据库不同,Adminer还支持管理其他数据库,如PostgreSQLSQLiteMS SQLOracleSimpleDBElasticsearchMongoDBFirebird。它还提供43种语言版本。

Adminer提供易于使用的界面,更好地支持许多MySQL功能,更卓越的性能和更高的安全性。

现在让我们探索如何安装Adminer。

如何使用Adminer

但在开始安装之前,以下是让Adminer在您的服务器上工作的一些基本要求:

  • 安装PHP 5、7 或8
  • 一个数据库驱动程序(例如MySQL、PostgreSQL等)

差不多就是这样!

从他们的官方网站下载最新版本的Adminer。您还可以在那里找到仅MySQL和仅英语版本的Adminer。如果您正在管理MySQL或MariaDB数据库(例如用于 WordPress 站点),您可以获得这些较轻的变体。

下载Adminer的最新版本

下载Adminer的最新版本

或者,如果您使用的是终端,则可以使用curl命令将其直接下载到您的目录中。

curl -o https://github.com/vrana/adminer/releases/download/v4.7.8/adminer-4.7.8.php

Adminer 4.7.8是最新的稳定版本。它增加了对刚刚发布的PHP 8.0的支持。如果有新版本可用,您可以在上述代码的下载URL中更改管理员的版本号。

下载后,您可以将此.php文件放在服务器上的任何位置,例如其根文件夹。但是,将所有第三方工具放在单独的目录(例如vendorassets等)中是一种很好的做法。

您现在已经在您的服务器上安装了Adminer。它的即插即用设计意味着Adminer几乎可以在任何服务器上运行。

如何访问Adminer

要访问它,您需要做的就是通过浏览器访问其链接。

例如,如果您将其放在网站的根目录中,则可以通过访问https://your-website.com/adminer-4.7.8.php来访问它。如果您没有设置域名,您也可以通过您服务器的IP地址或本地主机环境访问它。

使用或不使用数据库名称登录Adminer

使用或不使用数据库名称登录Adminer

从这里,您可以登录到安装在服务器上的任何数据库。您也可以将数据库字段留空。Adminer将在下一个屏幕上向您显示所有数据库的列表。

勾选Permanent login选项将节省您的登录信息,所以你可以很容易地在以后通过在侧栏的链接重温这段会话。

如果不指定,Adminer会列出所有数据库

如果不指定,Adminer会列出所有数据库

Adminer功能

Adminer包括许多功能,使数据库管理更加轻松。是时候深入了解它们了。

  1. 连接到数据库服务器
  2. 创建新数据库
  3. 更改数据库名称和排序规则类型
  4. 探索数据库架构
  5. 检查表数据和结构
  6. 更改表和列设置
  7. 插入新记录并更新现有记录
  8. 在所有表中搜索数据
  9. 截断、删除、移动和复制表
  10. 创建表、视图、例程和事件
  11. 导入或导出数据库
  12. 执行SQL查询
  13. 显示和创建权限(用户)
  14. 广泛的定制选项

连接到数据库服务器

如前所述,您可以连接到Adminer支持的任何数据库服务器。对于MySQL数据库服务器,默认用户名是root,默认密码是空字符串。您还可以在此处选择要管理的现有数据库。

使用Adminer管理WordPress数据库

使用Adminer管理WordPress数据库

创建新数据库

您可以单击Create database链接来创建新的MySQL数据库。输入数据库名称并选择其归类类型。对于WordPress数据库,推荐的整理类型是utf8mb4_unicode_ci

在Adminer中创建新数据库

在Adminer中创建新数据库

创建数据库后,您可以更改它的各个方面,例如数据库的名称、架构、用户和表。

设置数据库名称和排序规则类型以创建数据库

设置数据库名称和排序规则类型以创建数据库

您现在已经创建了一个新的MySQL数据库。下一页将向您展示用表、列等填充它的更多选项。

找到下拉菜单和标题中列出的新数据库

找到下拉菜单和标题中列出的新数据库

更改数据库名称和排序规则类型

单击“Alter database”链接将允许您更改其名称和归类类型。如果您刚刚创建了一个数据库并输入了错误,这将非常方便。

使用管理员的“Alter database”选项轻松编辑数据库

使用管理员的“Alter database”选项轻松编辑数据库

例如,我将数据库的整理类型从utf8_unicode_ci 更改utf8mb4_unicode_ci

在Adminer中更改数据库

在Adminer中更改数据库

注意:如果您的数据库已被任何应用程序使用,请确保您在此处所做的更改也反映在您的应用程序代码中。

检索数据库Schema

数据库模式是指定义所有数据库元素如何关联的逻辑配置。在MySQL中,Schema是数据库的同义词。所以,他们指的是同一件事。

但是,在PostgreSQL和Oracle等其他数据库中,Schema是指表的集合。它只是数据库的一部分。

WordPress使用MySQL作为其数据库。因此,它的Schema本质上是它的表及其列。Adminer甚至允许您在Schema框周围移动并根据需要使用它们。

在Adminer中检索WordPress数据库Schema

在Adminer中检索WordPress数据库Schema

这是了解典型 WordPress 数据库结构的来龙去脉的好方法。

检查表数据和结构

单击任何表格将显示有关它的更多详细信息。默认情况下,Adminer会将您定向到表的Show structure选项卡。在这里,您将找到有关表列的信息,例如它们的名称、类型和索引。

单击表格将显示其“结构”

单击表格将显示其“结构”

如果您的数据库表有任何关联的外键或触发器,它们也会列在此处的最底部。

上面的示例显示了有关wp_options表的详细信息。这是WordPress存储其所有重要设置的地方。接下来,您可以转到“Select data”选项卡以查看存储在此表中的所有值。

查看按列列出的所有表数据

查看按列列出的所有表数据

正如您所看到的,这里的用户界面比phpMyAdmin中的用户界面要容易得多。

更改表和列设置

单击顶部的Alter table链接以更改表和列设置。

通过Adminer轻松更改数据库表和列

通过Adminer轻松更改数据库表和列

对于表,您可以更改其名称、引擎和归类类型。在底部,您还可以找到用于设置表的默认值以启动自动增量的选项,以及是否可以使用默认值和注释设置其列。

对于列,您可以更改它们的名称、类型、长度和排序规则类型。

您还可以通过单击+x按钮来添加或删除列。Drop按钮将完全删除数据库中的表,所以请谨慎使用。

完成更改后,不要忘记点击“Save”按钮。

插入新记录并更新现有记录

点击New item链接转到Insert: <table_name>选项卡。

在数据库表的列中插入新记录

在数据库表的列中插入新记录

在这里,您可以向表中添加新行。管理员列出了列名称及其类型,以便您可以快速输入它们。您还可以为您输入的值运行散列函数以自动加密它们。如果数据是敏感的,例如密码,这将非常有用。例如,WordPress使用MD5算法将其密码存储在数据库中。

编辑现有记录同样简单。例如,如果您想更改站点的描述,您可以在wp_options表中编辑blogdescription选项的值。

在Adminer中编辑现有数据库记录

在Adminer中编辑现有数据库记录

接下来,在option_value字段中输入您的新博客描述,然后单击SAVE按钮以使您的更改生效。

通过Adminer更改WordPress站点的描述

通过Adminer更改WordPress站点的描述

在所有表中搜索数据

Adminer允许您一次在数据库的所有表中搜索任何数据。它会向您显示最有可能保存此值的表。

在Adminer中的数据库中搜索术语

在Adminer中的数据库中搜索术语

当我搜索词home时,Adminer将wp_options表作为最有可能的候选者。单击它会向我显示Adminer在数据库中找到它的确切列和行。

单击搜索结果下方列出的表格将显示有关它的更多详细信息。从这里,您可以在此表中执行更精细的搜索

在建议的表格中深入搜索

在建议的表格中深入搜索

例如,我可以编辑home选项名称的值并更改我网站的主页URL。

清空、删除、移动和复制表

Adminer允许您直接从数据库的仪表板对表执行许多操作。

轻松对表执行SQL操作

轻松对表执行SQL操作

您可以通过选择表并单击下面的按钮对表执行许多SQL查询。

例如,如果您想清空您网站上的所有评论,您可以选择wp_comments表并点击Truncate按钮。它会清空表中的所有行,但仍会保留现有的列结构。点击Drop按钮将完全删除表格。

从这里,您还可以将表MoveCopy到另一个数据库。使用Overwrite选项,这是一种将站点数据(例如帖子和评论)从一个站点传输到另一个站点的快速而肮脏的方式。

创建表、视图、例程和事件

您可以使用Adminer创建新表、视图、例程和事件。

使用Adminer创建新表很简单

使用Adminer创建新表很简单

Create table功能允许您定义表的完整模式,包括它的列和嵌套值。

高级用户可以使用Adminer的其他高级功能来定义MySQL视图、过程、函数和事件。

使用Adminer轻松创建许多其他SQL功能

使用Adminer轻松创建许多其他SQL功能

导入或导出数据库

Adminer可让您轻松导入MySQL数据库。您需要做的就是上传备份的.sql或 . sql.gz(推荐)文件并执行它。

在Adminer中导入MySQL数据库

在Adminer中导入MySQL数据库

同样,使用 Adminer备份现有数据库也非常简单。单击Export链接,然后选择导出选项,例如输出类型、格式和其他数据库设置。您还可以选择要导出的表。

在Adminer中导出数据库

在Adminer中导出数据库

默认情况下,Adminer支持使用OpenSaveGZIP输出导出数据库,使用SQLCSVCSV ;, 或TSV格式。但是,您可以使用Adminer插件轻松扩展此功能。我将在本文后面介绍它们。

执行SQL查询

您不必使用Adminer处理笨拙的用户界面来运行SQL查询。只需访问SQL命令屏幕并执行您想要的任何查询。

在管理员的SQL命令中运行SQL查询

在管理员的SQL命令中运行SQL查询

注意语法高亮。Adminer甚至将突出显示的SQL关键字链接到他们的官方文档。

在执行查询之前,您可以限制其行,将其设置为在遇到错误时停止运行,并且仅显示错误的输出。

显示和创建权限(用户)

您可以使用Adminer为您的数据库创建具有自定义权限的新用户。在大多数情况下这是不必要的,但如果您想创建一个新用户,您可以选择快速创建。

Adminer中的“权限”菜单链接

Adminer中的“权限”菜单链接

在Adminer中创建数据库用户

在Adminer中创建数据库用户

广泛的定制选项

您可以使用其默认Adminer类使用自定义代码扩展或覆盖 Adminer 的默认功能。为此,您需要定义一个adminer_object函数,该函数返回Adminer类的自定义值。

例如,如果要自定义页面标题和标题中显示的名称,可以使用以下代码:

<?php
function adminer_object() {  
class AdminerExtender extends Adminer {function name() {
// your custom name for title & heading
return 'Adminer for Wbolt';
}
}
return new AdminerExtender;
}
include './adminer-4.7.8.php';

您现在可以在标题部分看到我们设置的自定义名称(“Adminer for Wbolt”)。

使用其扩展API自定义Adminer的标头

使用其扩展API自定义Adminer的标头

您可以使用Adminer的扩展来做更多很酷的事情。您可以在他们的API参考页面上了解有关Adminer扩展的更多信息

Adminer插件

Adminer插件是即用型扩展,您可以使用它们轻松扩展Adminer的默认功能。

例如,如果您想以XML格式导出数据库,您可以安装Adminer dump-xml插件。同样,如果要将数据库导出为ZIP压缩文件,可以插入dump-zip扩展名。

使用插件扩展管理员的默认输出选项

使用插件扩展管理员的默认输出选项

官方网站列出了一些最流行的Adminer插件。您还可以在那里找到有关如何设置和使用Adminer插件的信息。

Adminer主题

Adminer最酷的功能之一是它的主题功能。官网列出了一些现成的设计,你可以马上使用。

插入Adminer主题以更改其外观

插入Adminer主题以更改其外观

要使用Adminer主题,您需要将主题的adminer.css文件放在adminer.php所在的同一目录中。

就这么简单。

用其主题完全重新设计Adminer

用其主题完全重新设计Adminer

上面的示例是Adminer网站上列出的Hydra主题。这是Adminer基于Material Design的深色主题。

另一个Adminer主题 (mvt)

另一个Adminer主题 (mvt)

其他一些不错的Adminer主题示例是Adminer Bootstrap-Like DesignAdminer Theme by pematon。使用上述任一主题作为模板,您可以通过修改CSS文件来根据自己的喜好自定义它们。

Adminer vs phpMyAdmin

既然我们已经探索了Adminer的许多功能,现在是时候看看Adminer与行业领导者phpMyAdmin的比较了。以下是对它们如何在各个方面叠加的简要回顾:

功能比较

phpMyAdmin仅支持MySQL数据库,而Adminer支持许多其他数据库。Adminer也可用于仅MySQL版本。

与Adminer相比,在phpMyAdmin中编辑和创建表是件苦差事。使用Adminer可以批量选择数据并一次性编辑它们。您会发现phpMyAdmin在这方面有所欠缺。

您还可以查看Adminer Editor,它是专注于编辑数据库的Adminer变体。它一次仅适用于一个数据库,您需要将其连接到另一个数据库才能使其工作。

phpMyAdmin在某些方面表现出色。例如,它比Adminer支持更多的语言和导出格式。其庞大的用户群确保有一个蓬勃发展的社区,如果您遇到任何问题,他们愿意为您提供帮助。

安全性

根据Adminer的团队的说法,“安全是Adminer开发的第一要务。”例如,Adminer阻止对数据库的访问,而无需在后端设置密码。它还限制连接尝试以防止暴力或SQL注入攻击。

Adminer的即插即用设计还意味着您可以在不再需要它时快速将其从服务器中删除。如果以后想再次使用,可以快速上传回来。你不能用phpMyAdmin做同样的事情。

通过使用Adminer的login-ssl插件,您可以使用SSL连接到您的MySQL数据库服务器。Adminer的仪表板还会提示您是否有新版本可用,因此您可以确保始终使用最新版本。

性能

根据Juraj Hajdúch的独立测试,Adminer平均比phpMyAdmin快28%。虽然他们早在2009年就发布了这些结果,当时Adminer还处于起步阶段,它是唯一可用的独立性能测试(目前)。

由于Adminer仅包含一个轻量级文件,因此您甚至可以将其部署在资源最有限的服务器上。

用户体验

与phpMyAdmin不同,使用Adminer从一开始就轻而易举。您不必涉足任何配置或设置。它只是有效。

Adminer还提供了更好、更友好的用户界面。使用Adminer自定义表、列及其值非常简单。导入数据库或进行备份也是如此

此外,Adminer插件和主题让您可以自定义其功能和界面以满足您的要求。从用户体验的角度来看,这使得Adminer成为明显的赢家。

文件大小

Adminer是一个小巧的数据库管理工具。这是至少28个比phpMyAdmin的更小的时候,即使它支持多种数据库类型比phpMyAdmin的。

Adminer的最新全功能版本 (v4.7.8) 仅有478KB大小,而phpMyAdmin的最新版本 (v5.0.4) 为13.7MB(另外,它是一个要启动的压缩文件)。当您考虑Adminer的仅MySQL版本 ( 354 KB )时,文件大小差异甚至更加明显。

如何在WordPress中使用Adminer

在WordPress中使用Adminer没有特定的方法。它适用于所有MySQL数据库。下载它的PHP文件,将其放置在您服务器上的任何位置,然后从您的浏览器访问它。登录Adminer后,您可以使用它浏览WordPress站点的数据库。

我建议您在使用完后从服务器中删除Adminer文件。将它长时间放置在您的服务器上无人看管可能会使您的数据库面临漏洞。

有一个名为ari-adminer的WordPress插件,可让您直接从WordPress仪表板访问Adminer。但是,由于严重的安全问题,它已关闭且近两年不再可供下载

小结

Adminer是phpMyAdmin的最佳替代品之一。它不仅占地面积更小,而且使用起来也更加快捷。它正在缓慢但不断地发展。Adminer的最新版本增加了对PHP8环境的支持,使其面向未来。