通过Java程序进行MySQL远程连接

时间:2019-03-06 10:59:47

标签: java mysql database apache remote-access

我用xampp托管了Apache服务器,并在PC1上创建了本地MYSQL数据库。

PC1已连接到NETWORK1。

我开发了简单的Java程序,该程序以这种方式连接到数据库:

static final String USERNAME="[myusername]";
static final String PASSWORD="[password]";
static final String CONN_STRING="jdbc:mysql://[myIP]:3306/[database_name]";

con=DriverManager.getConnection(CONN_STRING , USERNAME, PASSWORD);

即使我使用IP而不是'localhost'更改了链接,这在我的PC1上也可以正常工作。

在数据库中执行此命令后,它起作用了

GRANT ALL PRIVILEGES ON *.* TO [username]@[myIP] IDENTIFIED BY '[password]' WITH GRANT OPTION

因此,我尝试对PC2进行同样的操作,该PC2也存储此JAVA程序,但它已连接到另一个网络-NETWORK2。是否有可能发生-通过我的JAVA程序将PC2从外部网络连接到PC1上托管的mySQL数据库?

3 个答案:

答案 0 :(得分:0)

当然,为什么不呢?您只需要确保可以从其他网络访问PC1,并且必须打开必要的端口(3306)。

您可以从PC1 ping PC2来检查是否可行。

答案 1 :(得分:0)

您需要将bind-address从本地主机更新为mysql服务器的IP。 找到mysql conf文件并编辑:

mysql conf文件的位置将为/etc/my.cnf/etc/mysql/my.cnf/usr/local/mysql/etc/my.cnf

bind-address            = <IP address where MySql is running>

还要确保mysql-server机器的端口3306是打开的并且可以从其他PC访问。然后添加所需的特权。

答案 2 :(得分:0)

是的,您可以通过在同一LAN连接中连接两台计算机来完成此操作。在此之后,请检查安装了mysql的PC的IP地址。您只需在终端上键入ifconfig(linux)/ ipcofing(window)命令就可以找到它。确保您使用的本地IP地址(显示为192.168.1.144)不是公共地址。

在我的/usr/local/mysql/etc/my.cnf文件中使用该IP地址进行绑定,并在Java程序中使用该IP地址。您的代码将成功运行。