【发布时间】:2013-07-16 19:53:04
【问题描述】:
我有一个通过此代码连接到数据库的 JApplet:
String url = "jdbc:mysql://localhost:3306/moodlele_survey";
String user = "moodlele_garanti";
String password = "garanti";
try {
panel.add( new JLabel("before driver"));
Class.forName("com.mysql.jdbc.Driver");
panel.add( new JLabel("failed"));
Connection con = DriverManager.getConnection(url, user, password);
小程序已签名,因此它有权连接数据库。数据库用户被授予所有 previlleges 并且用户名、密码和数据库名称是正确的,因为我可以使用相同的信息通过 PHP 连接到数据库。我该如何解决?
打印的堆栈错误是: 用户 'moodlele_garanti'@'localhost' 的访问被拒绝(使用密码:YES)
【问题讨论】:
-
为什么这被否决了?
-
您确定您的数据库、用户和密码使用了正确的文本吗?
-
我得到的建议是将 url 更改为 www.mywebsite.com:3306 但这会带来错误问题是 Applet 正在下载到客户端,他可以' 不能访问 localhost 中的数据库(可能用户没有安装 mysql 数据库)。如何解决这个问题?嗯……
-
在您的代码中看到“localhost”这个词了吗?那是 local 主机;您的(本地)机器。小程序在浏览器中运行。
-
@user1570194 问题是PHP在部署应用程序的服务器上执行了服务器PHP代码。您的用户通过
http://someUrl/appName/restOfUrl.php访问您的 PHP 站点,这意味着 PHP 代码在someUrl服务器(或此someUrl名称指向的任何地方)执行,并且看起来此服务器已在其中安装 MySQL 数据库,因此没有访问数据库时遇到问题。另一方面,Applet 被下载到客户端 PC,即它将作为桌面应用程序执行,并且您的客户端在其 PC 中没有 mysql 数据库。
标签: java database jdbc japplet