我遇到了使用phpMyAdmin为用户创建和屏蔽权限的问题。我有一个Java swing应用程序,它需要连接到这个数据库。
我是如何创建用户并获得权限的,如下所示。
Add New User
Any Host
作为主机(因此%显示在文本框中),并提及密码。 Any host
是因为需要远程访问。Select
- Global Privileges
Data
Go
Users
标签页首页。 Edit Privileges
。Database-specific privileges
Database-specific privileges
,Data
部分下的所有内容。Go
现在,只要我的Java应用程序连接到它,就会出现以下错误
java.sql.SQLException: Access denied for user 'userName'@'localhost' (using password: YES)
这是我在Java应用程序中连接数据库的方式
con = DriverManager.getConnection("jdbc:mysql://"+ip+":3306/databaseName","user","password");
在这里,对于变量ip
,我尝试了localhost
和127.0.0.1
,但仍然没有好处。我做错了什么?
如果我在步骤4中选择Localhost
而不是Any Host
,我注意到连接正常。
答案 0 :(得分:1)
答案 1 :(得分:0)
您需要在mysql中为userName @ localhost授予权限。
GRANT ALL PRIVILEGES ON database_name TO userName@localhost IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
答案 2 :(得分:0)
有时,mysql服务器没有得到本地主机'从本地连接,你应该尝试:
GRANT ALL PRIVILEGES ON database_name TO 'userName'@'theHostName' IDENTIFIED BY 'password';
或以更危险的方式:
GRANT ALL PRIVILEGES ON database_name TO 'userName'@'%' IDENTIFIED BY 'password';
最后
FLUSH PRIVILEGES;
答案 3 :(得分:0)
您是否为phpmyadmin设置了任何密码。如果是,请在密码字段中包含该内容。或者您可以试试这个
con = DriverManager.getConnection("jdbc:mysql://"+ip+":3306/databaseName","localhost","");