我有一个名为test_user
GRANT all privileges on *.* to 'test_user'@'%' identified by 'test_passwd'
我可以从我的JAVA代码远程使用此用户。当我在服务器中运行代码时,我得到了
Access denied for user 'test_user'@'test_host' (using password: YES)
在为test_user授予所有权限后,我已经运行FLUSH PRIVILEGES;
并重新启动了mysql服务。
我尝试使用控制台
在服务器中登录mysqlmysql -utest_user -ptest_passwd
ERROR 1045 (28000): Access denied for user 'test_user'@'localhost' (using password: YES)
似乎我只能远程使用test_user
而不是服务器本身。有什么建议可以解决这个问题吗?
-------新测试----------
我试图在服务器上不提供密码,它正在运行
mysql -utest_user
我需要远程和本地使用密码。有什么建议吗?
答案 0 :(得分:0)
应该是:
CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
然后
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
-> WITH GRANT OPTION;
如果不起作用,请尝试使用root登录并查看:
SHOW GRANTS FOR 'admin'@'localhost';
到处替换您的值
试试这篇文章: SO solution to this problem
答案 1 :(得分:0)
我之前遇到过类似的问题。
拥有%
应允许用户从包括localhost在内的任何地方进行连接(假设您为granted privileges
和flushed privileges
)。但是,如果您没有制作secure install of mysql
,则最有可能在您的计算机上留下ghost localhost
。因此,您不仅可以在没有用户的情况下运行mysql
,也不会从localhost命令行提供密码,但ghost localhost
由于某种原因与从其创建的任何其他用户(除root之外)发生冲突登录localhost
。
如果您执行select user, password, host from mysql.user;
您可能会看到没有姓名,没有密码和主机localhost
的用户。
使用drop user ''@'localhost;
flush privileges
再次。
尝试使用localhost上的其他用户进行连接,它应该可以正常工作。