gpt4 book ai didi

mysql - 修改密码后无法登录MySQL

转载 作者:行者123 更新时间:2023-11-29 23:48:22 31 4
gpt4 key购买 nike

我正在尝试设置用户的密码,但设置后,我仍然无法以该用户身份登录。

$ 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 : Don’t listen for TCP/IP connections at all. All interaction with mysqld must be made via Unix sockets. This option is highly recommended for systems where only local requests are allowed. Since you need to allow remote connection this line should be removed from my.cnf or put it in comment state.

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

关于mysql - 修改密码后无法登录MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25793593/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com