Hello to the心爱的StackOverflow社区。我试图让设备通过互联网使用MySQL数据库(以及由MySQL Workbench(v5.6)提供的工具)进行通信,但是我并不了解这些设备,我的个人电脑作为服务器和我创建的Java程序。所有这些都没有提供域名,但我的服务器IP。我已经完成了我的研究,但现在我处于必须呼救的地步。使用Java远程访问MySQL数据库时出错
问题:似乎所有人都在工作JUST FINE当我的connect变量从localhost:3306获得连接时,但我只是想从互联网上访问它,我尝试了各种根本无法解决的问题。
故障1 - 我试图操纵C上的my.ini文件:\ ProgramData \ MySQL的 工作台5.6 \设置bind-address为127.0.0.1,然后到我的IPv4我从ipconfig(CMD),然后到了“ mypublicip'从http://www.whatismypublicip.com/。
它没有工作。
失败2 - I尝试编辑从MySQL工作台的连接 - >Hostname = 'mypublicip',port = 3306,Username和Password因为它是当我用Hostname =本地主机测试它。
这只是不适用于MySQL Workbench。我无法从Workbench连接到我的服务器,当我尝试设置对话框时,我不知道什么可行,什么不可行。
失败3 - 我试图保持为Hostname =在工作台本地主机和我改变 getConnection()方法返回从“mypublicip” IP连接。我无法使用我的IPv6(我不知道如何在getConnection()中使用它),所以我使用了一个公开的ID,我从 http://www.whatismypublicip.com/中找到。当我这样做时发生错误 这样说:“无法连接到数据库服务器,通信链接 失败。成功发送到服务器的最后一个数据包是0, 毫秒前。驱动程序未收到来自 服务器的任何数据包。 。这就是为什么我试图失败1号
这是从我的Java应用程序创建的程序和数据库之间的连接代码。 connectMessage是一个JFrame,让合适的消息有关的成功或连接失败,错误代码和错误消息的用户:
package aPackage;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
*
* @author manosmer
*/
public class MySQLConnector {
private Connection connect;
public MySQLConnector(){
connect = null;
}
public Connection connecting(UsersInfo user) throws ClassNotFoundException{
try{
Class.forName("com.mysql.jdbc.Driver");
connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/connectmessages", user.getName(), user.getPassword());
connectMessage messageconn = new connectMessage();
messageconn.setConnection(connect, user);
}catch(SQLException ex){
UserLogin errorlogin = new UserLogin();
connectMessage messageconn = new connectMessage();
messageconn.failed(ex);
}
return connect;
}
}
+2
'128.0.0.1'?希望这只是一个错字...如果你的意思是127.0.0.1,那么这不是一个有效的“互联网”地址。它不是可路由的,并且旨在允许一台机器自己谈话。你不能与另一台机器的127.0.0.1交谈,因为所有的IP机器都自动127.0.0.1 –
+1
你有一个连接远程和本地工作的问题很好,所以你为什么要从你的本地连接粘贴代码?粘贴你有问题的代码。 –
+0
@MarcB是啊,我在那里做了一个错字....我知道,这就是为什么它工作...你错过了我认为 –