首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

phpMyAdmin「連結表額外功能未啟用」完整修正教學

     編輯:MySQL 資料庫相關知識

問題現象

phpMyAdmin 2.3.0+ 版本登入後,資料庫列表頂部顯示紅色錯誤:

錯誤
使用連結表的額外特性尚未激活。要查出原因,請單擊此處。

點擊「此處」顯示 PMA Database ... 不好 [ 文檔 ],一般關系特性 已禁用。

根本原因

phpMyAdmin 進階功能(書籤、關聯檢視、PDF 結構圖、資料表關聯、追蹤、使用者偏好等)需要一組專用儲存表(pma__* 系列),且需在 config.inc.php 正確設定 pmadb 參數指向這組表所在的資料庫。

解決步驟

步驟 1:建立專用資料庫並匯入結構

# 登入 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 等表。

步驟 2:建立專用控制使用者並授權

# 建立控制帳號 (僅限本機)
CREATE USER 'pma'@'localhost' IDENTIFIED BY 'StrongP@ssw0rd';

# 授予專用資料庫權限
GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost';
FLUSH PRIVILEGES;

安全原則:控制帳號僅擁有 phpmyadmin 資料庫的增刪改查權限,不授予任何全域權限。

步驟 3:修改 config.inc.php 設定 pmadb 參數

找到 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'](多伺服器),每組都需完整設定上述參數。

步驟 4:重新登入驗證

  1. 登出 phpMyAdmin,清除瀏覽器 Cookie(或關閉瀏覽器重開)。
  2. 重新登入,錯誤訊息應消失,頂部出現「關聯檢視」、「設計師」等進階功能選單。
  3. 任意開啟資料表,結構頁籤應可看到「關聯檢視」連結。

常見失敗原因排查

現象可能原因解決
設定後仍報錯控制帳號密碼錯誤、主機不匹配檢查 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」四步驟。完成後即可享用書籤、關聯圖譜、查詢歷史、偏好記憶等提升生產力的進階功能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved