vm何如使用mysql的_无法使用java从VM连接到mysql数据库

在我的主机上,我安装了Wamp,我可以使用PHP或浏览器进行连接 . 我的客户端是一个带有Linux的虚拟机,我正在尝试连接到主机上的数据库以在那里添加一些条目 .

这是我的代码:

Connection conn = null;

try {

String url = "jdbc:mysql://192.168.1.236:8080/fps";

Class.forName("com.mysql.jdbc.Driver").newInstance();

conn = DriverManager.getConnection(url, "username", "password");

System.out.println("Database connection established");

} catch (Exception e) {

e.printStackTrace();

} finally {

if (conn != null) {

try {

conn.close();

System.out.println("Database connection terminated");

} catch (Exception e) {}

}

}

我必须提一下,我正在尝试通过本地网络进行连接,并且我还设置了Wamp以便在端口8080上工作(可以在上面看到) . 另一件事是,在虚拟机上,我可以使用浏览器访问数据库 .

上面的代码生成错误:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障成功发送到服务器的最后一个数据包是0毫秒前 . 驱动程序未收到来自服务器的任何数据包 . at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang.reflect.Constructor .newInstance(Constructor.java:526)位于com.mysql.jdbc.Util.handleNewInstance(Util.java:400)的com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1038)com.mysql.jdbc . MysqlIO.readPacket(MysqlIO.java:628)位于com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1014)的com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2249)com.mysql.jdbc com.mysql.jdbc的com.mysql.jdbc.ConnectionImpl . (ConnectionImpl.java:794)的com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2079)上的.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2280) .JDBC4Connection . (JDBC4Connection.java:44)at s的sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)在com.mysql的java.lang.reflect.Constructor.newInstance(Constructor.java:526)的sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)中的un.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) .jdbc.Util.handleNewInstance(Util.java:400)位于com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399),位于java的com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325) . 在DatabaseConnection.main上的java.sql.DriverManager.getConnection(DriverManager.java:215)中的sql.DriverManager.getConnection(DriverManager.java:571)(DatabaseConnection.java:12)引起:java.io.EOFException:无法读取来自服务器的响应预计读取4个字节,在连接意外丢失之前读取0个字节 . 在com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2926)com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:560)... 16更多

我相信问题可能来自客户端上的mysql设置,在文件/etc/mysql/my.cnf中,但我真的不知道如何更改它们,因为我没有找到针对这种特殊情况的示例 . 我还认为,当mysql正常使用3306时,我将端口更改为8080的事实可能会导致问题 .

所以,问题是,我怎么能做到这一点?谢谢 .

编辑:我还想添加端口更改(到8080)是在服务器上的apache的conf文件中进行的 . 默认情况下这是80.所以也许它不应该影响到mysql的3306 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值