phpMyAdmin 2.3.0+ 版本登入後,資料庫列表頂部顯示紅色錯誤:
錯誤
使用連結表的額外特性尚未激活。要查出原因,請單擊此處。
點擊「此處」顯示 PMA Database ... 不好 [ 文檔 ],一般關系特性 已禁用。
phpMyAdmin 進階功能(書籤、關聯檢視、PDF 結構圖、資料表關聯、追蹤、使用者偏好等)需要一組專用儲存表(pma__* 系列),且需在 config.inc.php 正確設定 pmadb 參數指向這組表所在的資料庫。
# 登入 MySQL
mysql -u root -p
# 建立資料庫 (名稱自訂,慣用 phpmyadmin)
CREATE DATABASE phpmyadmin CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
# 匯入官方建表腳本 (隨 phpMyAdmin 安裝包在 sql/ 或 scripts/ 目錄)
SOURCE /path/to/phpmyadmin/sql/create_tables.sql;
# 或
SOURCE /usr/share/phpmyadmin/sql/create_tables.sql;
腳本會建立 pma__bookmark, pma__relation, pma__table_info, pma__column_info, pma__history, pma__tracking, pma__userconfig, pma__recent, pma__favorite, pma__table_uiprefs, pma__central_columns, pma__designer_settings, pma__export_templates, pma__savedsearches, pma__navigationhiding, pma__users, pma__usergroups 等表。
# 建立控制帳號 (僅限本機)
CREATE USER 'pma'@'localhost' IDENTIFIED BY 'StrongP@ssw0rd';
# 授予專用資料庫權限
GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost';
FLUSH PRIVILEGES;
安全原則:控制帳號僅擁有 phpmyadmin 資料庫的增刪改查權限,不授予任何全域權限。
找到 phpMyAdmin 安裝目錄下的 config.inc.php(或 config.sample.inc.php 複製重命名),修改 $cfg['Servers'][$i] 陣列:
$i = 0;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['user'] = 'pma';
$cfg['Servers'][$i]['password'] = 'StrongP@ssw0rd';
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
關鍵點:
pmadb 指向步驟 1 建立的資料庫名稱。user/password 為步驟 2 建立的控制帳號。$cfg['Servers'](多伺服器),每組都需完整設定上述參數。| 現象 | 可能原因 | 解決 |
|---|---|---|
| 設定後仍報錯 | 控制帳號密碼錯誤、主機不匹配 | 檢查 user/password/host,用 mysql client 測試連線 |
| 權限不足 | 控制帳號缺少 INSERT/UPDATE/DELETE | 重新 GRANT 權限並 FLUSH PRIVILEGES |
| 表名稱前綴不符 | 舊版腳本表名無 pma__ 前綴 | 重新匯入最新 create_tables.sql 或手動 RENAME TABLE |
| 多伺服器設定遺漏 | 只改了第一組 $i=0 | 所有 $i 索引的伺服器組態皆需設定 pmadb 相關參數 |
若僅單人使用 phpMyAdmin,可直接將現有資料庫作為 pmadb,無需額外建立:
$cfg['Servers'][$i]['pmadb'] = 'your_existing_db';
$cfg['Servers'][$i]['controluser'] = 'your_username';
$cfg['Servers'][$i]['controlpass'] = 'your_password';
但不建議生產環境使用,混雜業務資料與 phpMyAdmin 中繼資料不利維護與安全。
啟用 phpMyAdmin 連結表功能僅需「建立專用庫 → 匯入結構 → 建立控制帳號 → 設定 config.inc.php」四步驟。完成後即可享用書籤、關聯圖譜、查詢歷史、偏好記憶等提升生產力的進階功能。