Mysql
在 MySQL 5.5 中創建超級使用者不起作用:root@localhost 的權限被拒絕
使用 CentOS 6,以 身份登錄 MySQL
root
,輸入命令:create user 'user123' identified by 'pass123';
工作正常。但是,當我嘗試為該使用者
super user privileges
提供:grant all on *.* to 'user123' identified by 'pass123';
我得到錯誤:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
然後
select * from mysql.user;
顯示 root 在所有列中都有 Y,因此應該具有所有權限。
如果有人能幫我找出 root 無法授予權限的原因,我將不勝感激,因為我看不出它為什麼不起作用。
謝謝
最後不得不繞過授權表。看這裡:
關於如何做到這一點
MySQL 中的權限與“使用者名”和“主機”相關聯。主機可以是域名、IP 地址或“本地主機”。其中任何一個都可以包含萬用字元
%
。如果您從錯誤的位置連接,即使使用正確的使用者名和密碼,您仍然會收到權限被拒絕錯誤。這些不同的使用者中的每一個都可以對不同的數據庫、表、行和命令具有不同的訪問權限。
還值得注意的是,“127.0.0.1”與“localhost”不同,因為
mysql
在命令行上使用客戶端將使用套接字而不是 IP 進行連接。如果在 MySQL 伺服器上使用客戶端時要使用 IP 連接mysql
,可以指定-h <IP address>
.要查看所有不同的“使用者”:
SELECT user,host,password FROM mysql.user;