Permissions
phpMyAdmin 成功刪除表記錄後出現奇怪的權限#1142 錯誤!
A 有一個帶有Nginx、PHP(多個版本)、MySQL 5.7.18 和最新(寫這個問題時)phpMyAdmin 4.7.0的實時/生產**CentOS 6.8伺服器。
這台伺服器已經執行了很多年並且沒有出現任何問題,但是最近我在嘗試使用 phpMyAdmin 從表中刪除記錄時發現了一個問題,出現以下錯誤:
#1142 - 表 ‘pma__tracking’ 拒絕使用者 ’test_user’@’localhost’ 的 SELECT 命令
奇怪的是它刪除了記錄,但刪除後無法刷新結果!此外,所有 SELECT 查詢都能正常工作,並且每次數據瀏覽都會成功獲取每個表上的數據!
我讓每個數據庫都有自己的使用者,並授予所有權限。
我已經正確安裝
$cfg['Servers'][$i]['controluser']
並且$cfg['Servers'][$i]['controlpass']
所有表都存在於$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
數據庫中。我的問題是,為什麼會發生這種情況,我該如何解決?這對我來說很奇怪,因為我希望在 phpMyAdmin 配置中定義的使用者應該訪問
pmadb
('pma'@'localhost'
) 和其中的表,而不是連接到數據庫的使用者!
這是 PMA 4.7.0 的錯誤。這是錯誤跟踪https://github.com/phpmyadmin/phpmyadmin/issues/13214
如果有人來這裡遇到與 PMA 4.7.0 相同的問題,請打開
PMA/libraries/Tracker.php
並更改以下行:Index: Tracker.php =================================================================== // - Remove/Comment $result = $GLOBALS['dbi']->fetchValue($sql_query); // + Add $row = $GLOBALS['dbi']->fetchArray(PMA_queryAsControlUser($sql_query)); // - Remove/Comment return ($result == 1); // + Add return isset($row[0]) ? $row[0] : -1;