2010-06-08 97 views
2

我想连接到共享服务器上的MySQL数据库。我正在使用Java应用程序进行连接。当我连接到localhost db时,问题不会发生。连接到远程mysql数据库的问题

URL = "jdbc:mysql://SHARED HOST IP:3306/DBNAME"; 
USER = "dbUSER"; 
PASS = "dbPASS"; 

Connection conn = DriverManager.getConnection(URL, USER, PASS); 

java.sql.SQLException: Access denied for user 'DBUSER'@'mycomputersIP???' (using password: YES) 

奇怪的是,它说,拒绝DBUSER @ mycomputersip而不是DBUSER @ sharedhostIP

是否有被拧的事情了我的无线路由器上的设置?

+0

绝对不是路由器。 ;) – 2010-06-08 04:48:48

回答

0

路由器上没有任何设置搞砸了。如果您尝试连接mycomputersIP(即打开JDBC连接的程序在您的计算机上),那么数据库将需要授予'DBUSER'@'mycomputersIP'的权限。 (实际上,这是授予字符串部分的要点。)

2

您的数据库未配置为远程访问。基本上它说你的用户位于你的IP没有权限访问数据库,而不是你的用户位于Web服务器。

如果您使用的是共享托管软件包,您需要在管理员区域打开此功能或者您的主机可能不支持此功能。一些主机还要求外部可访问的数据库可能不在Web服务器上,所以您的连接字符串也可能会改变。

+0

好吧,我明白现在在做什么。我确实进入了cpanel并添加了我的ip作为访问主机,但我仍然有相同的错误。 – Bthunder 2010-06-08 04:57:32

+0

尝试通过删除尽可能多的变量来简化等式。也许可以在http://dev.mysql.com/downloads/workbench/#downloads下载mysql工作台并以此方式连接。如果它仍然给你这个错误,我会认为仍然存在某种设置问题。验证,你把你的* external * ip,而不是你的内部IP,对吗? – 2010-06-08 05:02:22

+0

jdbc:mysql://服务器ip:3306/dbname服务器ip是mysql数据库服务器的IP地址。至于远程mysql设置,我有外部和192.168.1。% – Bthunder 2010-06-08 05:04:56

-1

同样的问题,我刚才得到的,它非常简单,访问已经由ISP访问DB否认,

提起请求授予访问权限,它会工作。

+0

我不这么认为,从服务器接收到拒绝访问消息,因此连接工作。这似乎是一个授权问题。 – 2010-06-08 06:50:57

+0

我有同样的问题,它为我工作 – gmhk 2010-06-08 09:00:19

0

就像VeeArr说'DBUSER'@'mycomputersIP ???'是标准的。出于某种原因,您的主机暴露您的数据库,但不允许您连接。如果您管理整个数据库或在您的控制面板中有一个选项,那么phpMyAdmin可以在特权下执行此操作。如果没有,那么你需要联系你的主机寻求帮助