# 官方下載頁:https://www.phpmyadmin.net/downloads/ wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.tar.gz tar xzf phpMyAdmin-5.2.1-all-languages.tar.gz mv phpMyAdmin-5.2.1-all-languages /var/www/html/phpmyadmin
cp config.sample.inc.php config.inc.php vim config.inc.php
必要設定:
$cfg['blowfish_secret'] = 'your_32chars_random_string_here'; // Cookie 加密金鑰 $cfg['Servers'][1]['host'] = 'localhost'; $cfg['Servers'][1]['port'] = ''; $cfg['Servers'][1]['auth_type'] = 'cookie'; // 推薦:Cookie 認證,不存明文 $cfg['Servers'][1]['user'] = 'root'; // 登入帳號(cookie 模式下為預填) $cfg['Servers'][1]['password'] = ''; // 留空,登入時輸入
進階多伺服器:
$i = 0; $i++; $cfg['Servers'][$i]['host'] = 'db1.internal'; $cfg['Servers'][$i]['verbose'] = 'Production Master'; $i++; $cfg['Servers'][$i]['host'] = 'db2.internal'; $cfg['Servers'][$i]['verbose'] = 'Production Slave'; $i++; $cfg['Servers'][$i]['host'] = '192.168.1.100'; $cfg['Servers'][$i]['verbose'] = 'Staging';
ServerName pma.yourdomain.com DocumentRoot /var/www/html/phpmyadmin SSLEngine on SSLCertificateFile /etc/ssl/certs/pma.crt SSLCertificateKeyFile /etc/ssl/private/pma.key # 基礎認證(第二層防線) AuthType Basic AuthName "phpMyAdmin Restricted Area" AuthUserFile /etc/apache2/.htpasswd_pma Require valid-user
建立帳號:`htpasswd -c /etc/apache2/.htpasswd_pma admin`
# 必裝 mysqli, mbstring, zip, gd, json, session, ctype # 建議裝 openssl, curl, xml, bz2, intl
重載 Apache:`systemctl reload apache2`
| 功能區 | 關鍵操作 | 進階技巧 |
|---|---|---|
| 資料庫/表結構 | 建立/修改/刪除、欄位/索引/外鍵/分區 | 「結構」頁面勾選「顯示 SQL」學習 DDL |
| 資料瀏覽/編輯 | 分頁、排序、篩選、內嵌編輯、NULL/預設值處理 | 「搜尋」頁建立複雜 WHERE 條件、匯出結果集 |
| SQL 執行器 | 多語句、語法高亮、EXPLAIN 視覺化、歷史記錄 | 書籤常用查詢(參數化書籤支援 `:var:` 佔位符) |
| 匯入/匯出 | SQL/CSV/JSON/XML/Excel/OpenDocument/LaTeX/PDF | 匯入大檔:調整 `upload_max_filesize`/`post_max_size`/`max_execution_time` |
| 權限管理 | 用戶/主機/資料庫/表/欄位/程序/代理 權限矩陣 | 「同步權限」將 Master 權限複製到 Slave |
| 監控/狀態 | 程序列表、InnoDB 狀態、複寫狀態、變數/狀態值 | 「顯示程序」Kill 閒置/阻塞連線 |
| 維護工具 | 檢查/修復/優化/分析表、清空/卸載表 | 批次勾選多表一次操作 |
| 問題 | 原因 | 解決 |
|---|---|---|
| 「無法連線 MySQL 伺服器」 | Socket 路徑/埠/防火牆/SELinux | 檢查 `config.inc.php` host/port、驗證 `mysql -h host -u user -p` 連線 |
| 匯入大 SQL 逾時/記憶體不足 | PHP 限制 | 調整 `php.ini`:`max_execution_time=0` `memory_limit=512M` `post_max_size=100M` `upload_max_filesize=100M`;或命令列 `mysql < file.sql` |
| 中文亂碼 | 字元集不匹配 | 確認資料庫/表/欄位/連線均為 `utf8mb4`;`$cfg['DefaultCharset'] = 'utf8mb4';` |
| 「Token mismatch」頻繁登出 | Cookie 域名/路徑/HTTPS 不一致 | `$cfg['PmaAbsoluteUri'] = 'https://pma.domain.com/phpmyadmin/';` 設定絕對 URI |
| 工具 | 類型 | 優勢 | 劣勢 | 適用場景 |
|---|---|---|---|---|
| phpMyAdmin | Web PHP | 功能全、零安裝、多伺服器 | 大資料操作慢、PHP 限制 | 通用 Web 管理首選 |
| Adminer | 單檔 PHP | 極輕量、單檔部署、支援 PostgreSQL/SQLite | 功能較少、介面簡陋 | 臨時/受限環境快速部署 |
| MySQL Workbench | 桌面 GUI | ER 圖、模型設計、遷移嚮導、效能儀表板 | 需安裝、Java 依賴、資源佔用大 | 架構設計/複雜遷移/效能調優 |
| DBeaver | 桌面 Electron | 通用 JDBC、支援 80+ 資料庫、SSH 隧道、ER 圖 | 啟動慢、記憶體大 | 多資料庫混合環境開發者 |
| DataGrip | 桌面 IDEA | 智慧 SQL、資料編輯器、版本控制整合 | 商業收費、資源重 | 專業開發者日常駕馭 |
phpMyAdmin 以「零門檻、全功能、Web 原生」三大特性,長期佔據 MySQL Web 管理工具霸主地位。掌握「Cookie 認證 + HTTPS + 基礎認證 + 路徑隨機化 + 定期更新」五層防護,即可在生產環境安心使用。對於大規模資料操作、結構設計、跨資料庫遷移,建議搭配 Workbench/DBeaver 等桌面工具形成「Web 管理 + 桌面專業」雙軌工具鏈。