强大的网页数据库管理工具Adminer
老苏折腾过的项目,数据库主要是 MySQL,其次是 MongoDB 、PostgreSQL 和 SQLite,最近还用到了 Elasticsearch ,但是数据库管理软件 phpMyAdmin 只能管理 MySQL ,老苏一直在找一个全能的数据库管理器,似乎 Adminer 可以满足要求。
什么是 Adminer ?
Adminer(原phpMinAdmin)是一个用PHP编写的全功能数据库管理工具。与phpMyAdmin相反,它由一个准备部署到目标服务器的文件组成。Adminer可用于MySQL、PostgreSQL、SQLite、MS SQL、Oracle、Firebird、SimpleDB、Elasticsearch和MongoDB。
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 adminer ,选择第一个 adminer,版本选择 latest。

端口
本地端口不冲突就行,不确定的话可以查一下
1 | # 查看端口占用 |
| 本地端口 | 容器端口 |
|---|---|
8989 |
8080 |

运行
在浏览器中输入 http://群晖IP:8989 就能看到主界面

MySQL
先试的是群晖自带的 MariaDB 5,数据库用的是 librenms
因为我们都是按账号创建的,所以用户名和数据库名是相同的

登录成功之后进入管理界面

接着试了下 MariaDB 10,数据库用的是 nocodb

登录很顺利

PostgreSQL
老苏安装 adminer 的主要原因就是为了管理 PostgreSQL,之前有两个项目安装了 docker 版的 PostgreSQL

进入管理界面

默认是 显示结构,改为 选择数据

MongoDB
接下来尝试了 MongoDB,之前好几个项目都用到了,最近的是下面👇这个:

但是这次没有成功,显示 没有扩展

老苏研究了半天,才发现这样一段描述

原来开箱即用的只有下面👇这些,其他的都得自己安装 PHP 扩展
MySQLPostgreSQLSQLiteSimpleDBElasticsearch
安装扩展
通过 SSH 客户端以 root 身份进入容器
1 | # 以 root 身份进入容器 |
依次执行下面的命令
安装比较花时间,需要耐心
1 | # 安装编译环境 |

如果中间出现错误

就再执行一次

编译成功之后还需要修改配置,再重启一次容器就可以了

这次很顺利的进入到了管理界面

Elasticsearch
Nettu Meet 还用到了 Elasticsearch ,正好又是开箱即用的,所以也一并看看,但是 Adminer默认不支持访问没有密码的数据库

环境
停止容器,添加环境变量
| 可变 | 值 |
|---|---|
ADMINER_PLUGINS |
插件名称 |
在这里
值我们输入login-password-less

如果直接启动,日志中会有报错

这是因为 login-password-less 插件需要参数才能正常工作,所以不适用上面的方法,将 ADMINER_PLUGINS 值设为空,然后启动

通过 SSH 客户端以 root 身份进入容器
1 | # 以 root 身份进入容器 |
依次执行下面的命令
1 | # 进入目录 |
login-password-less.php 文件内容如下
1 |
|
在密码中输入 nopassword

登录 成功之后的管理界面

主题
前面的截图看起来比较丑陋,但实际上 Adminer 是支持主题的
通过 SSH 客户端以 root 身份进入容器
1 | # 以 root 身份进入容器 |
依次执行下面的命令
1 | # 下载 css 文件 |

刷新一下页面,有没有觉得档次立马提升了几个层次?

进管理界面

小结
Adminer 是 phpMyAdmin 的最佳替代品之一。它不仅体积更小,而且使用起来也更加快捷。
功能虽然老苏没涉及,但是跨过了登录的难关,又是中文界面,用起来还是很容易的,有问题可以提出来一起研究。
参考文档
vrana/adminer: Database management in a single PHP file
地址:https://github.com/vrana/adminerAdminer - Database management in a single PHP file
地址:https://www.adminer.org/finwo/docker-adminer: Dockerized adminer db manager - docker-adminer - Codeberg.org
地址:https://codeberg.org/finwo/docker-adminerHow to Use Adminer to Manage Databases Easily with a Single PHP File
地址:https://kinsta.com/blog/adminer/