Java-通信链路故障
我刚刚跟我的主机说我的网页在那里,他们说他们允许JDBC连接 无论如何,您可以查看的页面是 这是我的错误:Java-通信链路故障,java,mysql,jdbc,Java,Mysql,Jdbc,我刚刚跟我的主机说我的网页在那里,他们说他们允许JDBC连接 无论如何,您可以查看的页面是 这是我的错误: **** Looking for database... com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The drive
**** Looking for database...
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1118)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:343)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2308)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2122)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:774)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:49)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:375)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:289)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at test.init(test.java:38)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.net.SocketException: java.security.AccessControlException: access denied (java.net.SocketPermission [0:0:0:0:0:0:0:1]:4464 connect,resolve)
at com.mysql.jdbc.StandardSocketFactory.unwrapExceptionToProperClassAndThrowIt(StandardSocketFactory.java:407)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:268)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:292)
... 16 more
java.lang.NullPointerException
at test.init(test.java:69)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception: java.lang.NullPointerException
引用您的代码:
// if user loads applet online
conn = DriverManager.getConnection("jdbc:mysql://localhost:4464/jsfdan_mystikdan", "jsfdan_muser", "test");
小程序是在用户机器上运行的程序,浏览器位于该机器上。因此,localhost
在此阶段指的是用户的机器。大多数用户可能没有在他们自己的机器上运行MySQL,即使他们运行MySQL,它也不会是您的小程序所追求的,而且它无论如何都会从小程序的沙盒环境中退出
编辑(在评论中讨论后):
从前面相关问题中的讨论和评论来看,您似乎试图从分布到任何地方的客户端的应用程序(applet)直接连接到MySQL服务器,这通常是错误的方法
- 您担心在示例中发布您的用户名/密码。与广泛分发小程序相比,这只是一个小问题:任何人都可以轻松查看应用程序发送到MySQL服务器的流量,并获取用户名/密码
- 大多数MySQL服务器都被阻止外部访问,主要是因为与整个应用程序的访问需求相比,它们自身没有提供合适的访问控制。情况并非总是如此,但插入/选择/更新操作本身的访问控制往往过于粗糙,无法代表整个应用程序的功能目的
// if user loads applet online
conn = DriverManager.getConnection("jdbc:mysql://localhost:4464/jsfdan_mystikdan", "jsfdan_muser", "test");
小程序是在用户机器上运行的程序,浏览器位于该机器上。因此,localhost
在此阶段指的是用户的机器。大多数用户可能没有在他们自己的机器上运行MySQL,即使他们运行MySQL,它也不会是您的小程序所追求的,而且它无论如何都会从小程序的沙盒环境中退出
编辑(在评论中讨论后):
从前面相关问题中的讨论和评论来看,您似乎试图从分布到任何地方的客户端的应用程序(applet)直接连接到MySQL服务器,这通常是错误的方法
- 您担心在示例中发布您的用户名/密码。与广泛分发小程序相比,这只是一个小问题:任何人都可以轻松查看应用程序发送到MySQL服务器的流量,并获取用户名/密码
- 大多数MySQL服务器都被阻止外部访问,主要是因为与整个应用程序的访问需求相比,它们自身没有提供合适的访问控制。情况并非总是如此,但插入/选择/更新操作本身的访问控制往往过于粗糙,无法代表整个应用程序的功能目的