安裝完 MySQL ,登入後卻出現 "關聯資料表的附加功能未能啟動" (The additional features for working with linked tables have been deactivated.) 的警告時,正確解決方法。
網路上可以搜尋到很多關於 "關聯資料表的附加功能未能啟動" 的處理方式,但幾乎都是不正確、不完整,或者治標不治本的辦法,本篇會教大家如何正確處理這個常見的警告訊息。
首先,我們必須了解造成這個警告訊息出現的原因,可能是下面這些情況:
- pmadb 設定不正確
- controluser 或 controlpass 設定不正確
如果是因為pmadb 設定不正確...
STEP 1:檢查是否有 "phpmyadmin" 資料庫
登入 phpMyAdmin 管理介面之後,左方是否有 "phpmyadmin" 資料庫?如果有,再檢查 "phpmyadmin" 資料庫中是否有以下共九個資料表,
- pma_bookmark
- pma_column_info
- pma_designer_coords
- pma_history
- pma_pdf_pages
- pma_relation
- pma_table_coords
- pma_table_info
- pma_tracking
若需要重新載入資料庫,在 ../phpMyAdmin/scripts 資料夾內找到 create_tables.sql 這個檔案,從 phpMyAdmin 中載入這個檔案(即執行檔案中的所有 SQL)。
清除瀏覽器快取,並重新登入 phpMyAdmin ,檢查 "phpmyadmin" 資料庫和資料表是否已修正。這時候 "關聯資料表的附加功能未能啟動" 警告訊息可能已經消失了,但為了確實解決問題,必須繼續 STEP 2。
STEP 2:檢查 config.inc.php
在 phpMyAdmin 目錄下找到 config.inc.php 這個檔案,開啟之後找到下列這段程式碼,/* Advanced phpMyAdmin features */ $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]['designer_coords'] = 'pma_designer_coords'; $cfg['Servers'][$i]['tracking'] = 'pma_tracking';
找到之後跟上列程式碼比對,若有缺少,複製缺少的項目並貼進 config.inc.php 中儲存。要特別注意
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
重新登入 phpMyAdmin 後,錯誤訊息已消失!
如果是因為controluser 或 controlpass 設定不正確...
STEP 1:檢查 config.inc.php
在 phpMyAdmin 目錄下找到 config.inc.php 這個檔案,開啟之後找到下列這段程式碼,這是用來處理所有資料庫關聯的功能(也就是 pmdb)。/* User for advanced features */ $cfg['Servers'][$i]['controluser'] = 'pma'; $cfg['Servers'][$i]['controlpass'] = 'pmapass';
找到之後跟上列程式碼比對,其中pma 和 pmapass 只是本篇說明用的帳號和密碼,可能與你的設定不同,若這兩行程式已存在,基本上代表安裝 MySQL 時已正確設定,可以跳過這個 STEP;但若缺少這兩行程式,或者密碼項目未設定(如 $cfg['Servers'][$i]['controlpass'] = '';)而想要設定,請繼續看下去。
如果沒有上面這兩行程式碼,請複製並貼進 config.inc.php 中儲存,而 pma 和 pmapass 只是本篇說明用的帳號和密碼,請取代成你自己所要使用的帳號密碼。
STEP 2:建立 controluser/controlpass 和設定權限
以 root 登入 phpMyAdmin,下 SQL 指令如下,CREATE USER 'pma'@'localhost' IDENTIFIED BY 'pmapass'; GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost';這兩行指令代表,建立一個 phpMyAdmin 的使用者帳戶 pma 密碼 pmapaa 從 'localhost' 登入,擁有 SELECT, INSERT, UPDATE, DELETE phphmyadmin 資料庫下所有資料表的權限。
其中 pma/pmapass 的設定必須和 STEP 1 中,config.inc.php 中的設定一致,若 webserver 的 host 和 MySQL server 位置不同的話也記得要更改。
重新登入 phpMyAdmin 後,錯誤訊息已消失!
沒有留言:
張貼留言