[英]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.