網(wǎng)頁數(shù)據(jù)庫管理工具Adminer

老蘇折騰過的項目,數(shù)據(jù)庫主要是 MySQL,其次是 MongoDB 、PostgreSQL 和 SQLite,最近還用到了 Elasticsearch ,但是數(shù)據(jù)庫管理軟件 phpMyAdmin 只能管理 MySQL ,老蘇一直在找一個全能的數(shù)據(jù)庫管理器,似乎 Adminer 可以滿足要求。

什么是 Adminer ?

Adminer(原 phpMinAdmin)是一個用 PHP 編寫的全功能數(shù)據(jù)庫管理工具。與 phpMyAdmin 相反,它由一個準備部署到目標服務(wù)器的文件組成。Adminer 可用于 MySQL、PostgreSQL、SQLite、MS SQL、Oracle、Firebird、SimpleDB、Elasticsearch 和 MongoDB。

安裝
在群暉上以 Docker 方式安裝。

在注冊表中搜索 adminer ,選擇第一個 adminer,版本選擇 latest。

端口
本地端口不沖突就行,不確定的話可以查一下

查看端口占用

netstat -tunlp | grep 端口號
1
2
本地端口 容器端口
8989 8080

運行
在瀏覽器中輸入 http://群暉IP:8989 就能看到主界面

MySQL
先試的是群暉自帶的 MariaDB 5,數(shù)據(jù)庫用的是 librenms

因為我們都是按賬號創(chuàng)建的,所以用戶名和數(shù)據(jù)庫名是相同的

登錄成功之后進入管理界面

接著試了下 MariaDB 10,數(shù)據(jù)庫用的是 nocodb

登錄很順利

PostgreSQL
老蘇安裝 adminer 的主要原因就是為了管理 PostgreSQL,之前有兩個項目安裝了 docker 版的 PostgreSQL

日程安排工具Calendso
多合一的家庭助理Homechart

進入管理界面

默認是 顯示結(jié)構(gòu),改為 選擇數(shù)據(jù)

MongoDB
接下來嘗試了 MongoDB,之前好幾個項目都用到了,最近的是下面??這個:

交互式在線輔導(dǎo)工具Nettu Meet

但是這次沒有成功,顯示 沒有擴展

老蘇研究了半天,才發(fā)現(xiàn)這樣一段描述

原來開箱即用的只有下面??這些,其他的都得自己安裝 PHP 擴展

MySQL
PostgreSQL
SQLite
SimpleDB
Elasticsearch
安裝擴展
通過 SSH 客戶端以 root 身份進入容器

以 root 身份進入容器

docker exec -it --user root adminer1 /bin/sh
1
2
依次執(zhí)行下面的命令

安裝比較花時間,需要耐心

安裝編譯環(huán)境

apk add autoconf gcc g++ make libffi-dev openssl-dev

安裝 mongo 驅(qū)動

pecl install mongodb

添加 mongo 配置

echo "extension=mongodb.so" > /usr/local/etc/php/conf.d/docker-php-ext-mongodb.ini
1
2
3
4
5
6
7
8

如果中間出現(xiàn)錯誤

就再執(zhí)行一次

編譯成功之后還需要修改配置,再重啟一次容器就可以了

這次很順利的進入到了管理界面

Elasticsearch
Nettu Meet 還用到了 Elasticsearch ,正好又是開箱即用的,所以也一并看看,但是 Adminer默認不支持訪問沒有密碼的數(shù)據(jù)庫

環(huán)境
停止容器,添加環(huán)境變量

可變 值
ADMINER_PLUGINS 插件名稱
在這里 值 我們輸入 login-password-less

如果直接啟動,日志中會有報錯

這是因為 login-password-less 插件需要參數(shù)才能正常工作,所以不適用上面的方法,將 ADMINER_PLUGINS 值設(shè)為空,然后啟動

通過 SSH 客戶端以 root 身份進入容器

以 root 身份進入容器

docker exec -it --user root adminer1 /bin/sh
1
2
依次執(zhí)行下面的命令

進入目錄

cd plugins-enabled/

創(chuàng)建文件

vi login-password-less.php
1
2
3
4
5
login-password-less.php 文件內(nèi)容如下

<?php
require_once('plugins/login-password-less.php');

/** Set allowed password
* @param string result of password_hash
*/
return new AdminerLoginPasswordLess(
$password_hash = password_hash('nopassword', PASSWORD_DEFAULT)
);
1
2
3
4
5
6
7
8
9
在密碼中輸入 nopassword

登錄 成功之后的管理界面

主題
前面的截圖看起來比較丑陋,但實際上 Adminer 是支持主題的

通過 SSH 客戶端以 root 身份進入容器

以 root 身份進入容器

docker exec -it --user root adminer1 /bin/sh
1
2
依次執(zhí)行下面的命令

下載 css 文件

curl -O https://raw.githubusercontent.com/Niyko/Hydra-Dark-Theme-for-Adminer/master/adminer.css

鏡像站點

curl -O https://raw.fastgit.org/Niyko/Hydra-Dark-Theme-for-Adminer/master/adminer.css
1
2
3
4
5

刷新一下頁面,有沒有覺得檔次立馬提升了幾個層次?

進管理界面

小結(jié)
Adminer 是 phpMyAdmin 的最佳替代品之一。它不僅體積更小,而且使用起來也更加快捷。

功能雖然老蘇沒涉及,但是跨過了登錄的難關(guān),又是中文界面,用起來還是很容易的,有問題可以提出來一起研究。

參考文檔
vrana/adminer: Database management in a single PHP file
地址:https://github.com/vrana/adminer

Adminer - 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-adminer

How to Use Adminer to Manage Databases Easily with a Single PHP File
地址:https://kinsta.com/blog/adminer/
————————————————

原文鏈接:https://blog.csdn.net/wbsu2004/article/details/121949994

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容