強大的網頁資料庫管理工具Adminer

枫树湾河桥發表於2024-06-14

老蘇折騰過的專案,資料庫主要是 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。


本地埠不衝突就行,不確定的話可以查一下

# 檢視埠占用
netstat -tunlp | grep 埠號
1
2
本地埠 容器埠
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 身份進入容器

# 以 root 身份進入容器
docker exec -it --user root adminer1 /bin/sh
1
2
依次執行下面的命令

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

# 安裝編譯環境
apk add autoconf gcc g++ make libffi-dev openssl-dev

# 安裝 mongo 驅動
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


如果中間出現錯誤

就再執行一次

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

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

Elasticsearch
Nettu Meet 還用到了 Elasticsearch ,正好又是開箱即用的,所以也一併看看,但是 Adminer預設不支援訪問沒有密碼的資料庫

環境
停止容器,新增環境變數

可變 值
ADMINER_PLUGINS 外掛名稱
在這裡 值 我們輸入 login-password-less

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

這是因為 login-password-less 外掛需要引數才能正常工作,所以不適用上面的方法,將 ADMINER_PLUGINS 值設為空,然後啟動

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

# 以 root 身份進入容器
docker exec -it --user root adminer1 /bin/sh
1
2
依次執行下面的命令

# 進入目錄
cd plugins-enabled/

# 建立檔案
vi login-password-less.php
1
2
3
4
5
login-password-less.php 檔案內容如下

<?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
依次執行下面的命令

# 下載 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


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

進管理介面

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

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

參考文件
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/
————————————————

版權宣告:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結和本宣告。

原文連結:https://blog.csdn.net/wbsu2004/article/details/121949994

相關文章