今天遇到點麻煩,雖然沒有解決,但是算提醒大家了。
今天用Grant創建用戶名是"DanielW",後來登錄死活密碼不對,重新創建一次,用戶名是"Daniel@localhost",也就是說加上了主機名,flush privileges後退出再登錄,成功!
後來研究了一下,發現用"DanielW"創建用戶host儲存的是%,而"Daniel@localhost"在user裡面儲存的是DanielW,host裡面儲存的是localhost,這也就是為什麼登陸不了,因為在登錄mysql -u root -p裡面默認的-h是localhost,而用用戶名"DanielW"創建時是通配符%,這個是mysql不能識別的~怎麼登錄這個%還沒有研究明白,個人之見,希望指教指教~
=========================================
看mysql參考手冊,發現其中增加用戶部分有這麼一段話:
其中兩個賬戶有相同的用戶名monty和密碼some_pass。兩個賬戶均為超級用戶賬戶,具有完全的權限可以做任何事情。一個賬戶('monty'@'localhost')只用於從本機連接時。另一個賬戶('monty'@'%')可用於從其它主機連接。請注意monty的兩個賬戶必須能從任何主機以monty連接。沒有localhost賬戶,當monty從本機連接時,mysql_install_db創建的localhost的匿名用戶賬戶將占先。結果是,monty將被視為匿名用戶。原因是匿名用戶賬戶的Host列值比'monty'@'%'賬戶更具體,這樣在user表排序順序中排在前面。
所以%在本機是無法登陸的(明天再試試遠程登錄~)
====================================
早上測試了一下,%可以從遠程登錄~~
摘自Daniel.W|Kernel