[英]OperationalError at /admin/login/ (1698, "Access denied for user 'root'@'localhost'")
[英]OperationalError: (1698, “Access denied for user 'cotequotey'@'localhost'”)
即使嘗試了該線程中的方法, 錯誤1698(28000):用戶'superuser1'@'localhost'的訪問被拒絕 ,我的用戶名'cotequotey'仍然存在相同的錯誤,內容為:
OperationalError: (1045, "Access denied for user 'cotequotey'@'localhost' (using password: NO)")
這個用戶名“ cotequotey”是我將auth_socket插件賦予的用戶名,以便該用戶名成為默認用戶名而不是root用戶。 所以這是我的用戶表的樣子:
mysql> select User,host,plugin, authentication_string from mysql.user;
+------------------+-----------+-----------------------+-------------------------------------------+
| User | host | plugin | authentication_string |
+------------------+-----------+-----------------------+-------------------------------------------+
| root | localhost | mysql_native_password | *B845F78DCA29B8AE945AB9CFFAC24A9D17EB5063 |
| mysql.session | localhost | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys | localhost | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| debian-sys-maint | localhost | mysql_native_password | *0C8DDC30A93F5F8834121C4DF8703A051E215166 |
| cotequotey | localhost | auth_socket | |
+------------------+-----------+-----------------------+-------------------------------------------+
5 rows in set (0.00 sec)
因此,我希望在執行命令時通過“ cotequotey”進行的連接無需密碼即可正常工作:
ubuntu:~/environment/RAD_Final (angela) $ mysql -u cotequotey
ERROR 1045 (28000): Access denied for user 'cotequotey'@'localhost'
但是,控制台中的此命令仍然會產生原始錯誤,因此我想知道是否有人知道解決方案?
我想知道這是否是授予權限的問題,因為我的根授予權限與cotequotey @ localhost的授予權限相同。 不確定這是否會使他們發生沖突。
+---------------------------------------------------------------------+
| Grants for root@localhost |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
+---------------------------------------------------------------------------+
| Grants for cotequotey@localhost |
+---------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'cotequotey'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'cotequotey'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------------+
根據文檔 :
套接字插件檢查套接字用戶名(操作系統用戶名)是否與客戶端程序向服務器指定的MySQL用戶名匹配。 如果名稱不匹配,則插件將檢查套接字用戶名是否與mysql.user系統表行的authentication_string列中指定的名稱匹配。 如果找到匹配項,則插件允許連接。 可以使用帶有CREATE USER或ALTER USER的IDENTIFIED ... AS子句來指定authentication_string值。
看來您的mysql帳戶名與您的UNIX用戶名不匹配,並且您在authentication_string
字段中沒有指定替代名稱。
附錄:本質上auth_socket表示“如果操作系統對您進行了身份驗證,則MySQL也將信任您。” 完成此操作的默認設置是檢查Linux帳戶名和MySQL帳戶名是否匹配(因此,沒有其他人可以登錄到計算機並聲稱自己是您而獲得特權)。 您可以通過指定備用名稱來覆蓋此行為,如上面鏈接的文檔中所述。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.