强大的网页数据库管理工具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
日程安排工具Calendso
多合一的家庭助理Homechart
进入管理界面
默认是 显示结构
,改为 选择数据
MongoDB
接下来尝试了 MongoDB
,之前好几个项目都用到了,最近的是下面👇这个:
交互式在线辅导工具Nettu Meet
但是这次没有成功,显示 没有扩展
老苏研究了半天,才发现这样一段描述
原来开箱即用的只有下面👇这些,其他的都得自己安装 PHP
扩展
-
MySQL
-
PostgreSQL
-
SQLite
-
SimpleDB
-
Elasticsearch
安装扩展
通过 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/