GRANT SELECT ON source_starcraft.udb_ability TO `wade`@`localhost'
當我通過PHPMyAdmin登錄wade
我看不到數據庫source_starcraft
。我只執行了此查詢並在此查詢之前創建了用戶。MySQL看不到數據庫
GRANT SELECT ON source_starcraft.udb_ability TO `wade`@`localhost'
當我通過PHPMyAdmin登錄wade
我看不到數據庫source_starcraft
。我只執行了此查詢並在此查詢之前創建了用戶。MySQL看不到數據庫
如果您登錄到phpMyAdmin的用戶確實擁有查看數據庫的正確權限,但仍看不到它,這可能意味着phpMyAdmin本身已被配置爲不顯示它。這是通過在phpMyAdmin中發出show databases;
SQL查詢來驗證的最簡單方法。如果您正在查找的數據庫顯示出來,用戶可以至少查看它。
有幾個配置指令可以控制哪些數據庫在phpMyAdmin的列表中可見。如果您使用自動安裝程序或腳本將phpMyAdmin添加到用戶帳戶,則可能還會設置only_db或hide_db中的一個。這些也在官方的phpMyAdmin文檔中描述,這些文檔應該包含在您的安裝中,並在wiki上。
如果您的用戶有權更改設置,您可以在phpMyAdmin的「設置」和「功能」選項卡下爲當前會話執行此設置。要永久更改這些設置,您需要編輯config.inc.php。它的位置取決於您系統上安裝的phpMyAdmin的位置。
看起來好像我可能在授予哪個主機以及正在使用哪個主機方面存在一些衝突/混淆。
FLUSH PRIVILEGES
後除去這種可能性,我會看到我被確定哪些用戶因爲一旦我登錄:
SELECT user();
注意,MySQL總是登錄與最特定的主機相關聯。見doc。然後將其與特權數據庫中的內容進行比較。
SELECT * FROM mysql.user WHERE user='wade';
SELECT * FROM mysql.db WHERE user='wade';
要解決的情況下,無論是REVOKE
或DELETE
+ FLUSH PRIVILEGES
的麻煩,造成衝突(注意不要給自己畫成一個角落),或GRANT
更多的特權用戶被識別爲一個。
這裏給了我很多幫助。其實我正在使用MySQL Workbench。
http://bobfield.blogspot.it/2006/10/i-cant-see-my-databases.html
簡單地說,它說,如果MySQL有一個<匿名>帳戶,你不能用你的用戶登錄,你最終登錄爲匿名用戶,恕不另行通知。要了解這一點,你可以這樣做:
SELECT user(), current_user();
這裏的原因:注意
一個重要的事情是
SELECT USER();
顯示您 當前用戶名和主機。另一個命令SELECT CURRENT_USER();
顯示了你正在認證的 as。
事實上,在我的情況,user()
是[email protected]
,current_user()
是@localhost
(匿名的用戶)。
@Webnet - 確保你已經運行了`flush privileges` – ajreal 2010-12-03 19:22:07
良好的調用 - 儘管我做到了這一點,並作爲wade登錄我仍然無法看到其他數據庫比`information_schema` – Webnet 2010-12-03 19:38:08
好吧,你的數據庫在哪裏?和phpmyadmin一樣嗎?本地主機可能是可能的原因 – ajreal 2010-12-03 19:41:28