簡體   English   中英

修改密碼后無法登錄MySQL

[英]Can't Login To MySQL After Changing Password

我正在嘗試設置用戶的密碼,但是在設置密碼后,我仍然無法以該用戶身份登錄。

$ mysql -uroot -p mydb
Enter password:

mysql> select user,host,password from mysql.user;
...
webapp | % | *.... |

mysql> show grants for webapp@'%';
GRANT USAGE ON *.* TO 'webapp'@'%' IDNETIFIED BY PASSWORD '*...'
GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON 'mydb'.* TO 'webapp'@'%'

mysql> set password for webapp@'%'=PASSWORD('mypassword');
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit

$ mysql -uwebapp -p mydb
Enter password:
ERROR 1045 (28000): Access denied for user 'webapp'@'localhost' (using password: YES)

我只設置了密碼,但它不起作用,這是怎么回事?

順便說一句,用戶表只有一個名為“ webapp”的條目,其主機為“%”

我正在使用MySQL 5.1.67。 我也嘗試重新啟動mysqld,但仍然無法正常工作。

在對注釋進行所有測試之后,您遇到的問題是服務器上的skip-networking使其根本無法監聽TCP / IP連接。

由於它不監聽TCP / IP連接,因此您的MySQL服務器正在使用套接字進行連接,因此您需要具有一個包含localhost的用戶條目,因為套接字使用localhost

如您所測試的,添加被授予使用權限的localhost解決了該問題,並且還定義了這樣一個事實,即您是否確實有使用localhost的用戶來進行此類特定服務器配置,這確實有所不同。

在您的情況下,運行以完成localhost授予使用的命令是:

        GRANT SELECT, 
              INSERT, 
              UPDATE, 
              DELETE, 
              EXECUTE 
           ON 'your_database_name_here'.* 
           TO 'your_username_here'@'localhost' 
IDNETIFIED BY 'your_password_here';
FLUSH PRIVILEGES;

作為進一步參考:

skip-networking:根本不監聽TCP / IP連接。 與mysqld的所有交互都必須通過Unix套接字進行。 對於僅允許本地請求的系統,強烈建議使用此選項。 由於需要允許遠程連接,因此應從my.cnf中刪除此行或將其置於注釋狀態。

http://dev.mysql.com/doc/refman/5.5/zh-CN/server-options.html#option_mysqld_skip-networking

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM