我用 xampp 托管 Apache 服务器,并在我的 PC1 上创建了本地 MYSQL 数据库。PC1 已连接到网络 1。我开发了简单的 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);这在我的 PC1 上工作得非常好,即使我用我的 IP 而不是“localhost”更改了链接。在数据库中执行此命令后它起作用了:GRANT ALL PRIVILEGES ON *.* TO [username]@[myIP] IDENTIFIED BY '[password]' WITH GRANT OPTION所以我想对我的 PC2 做同样的事情,它也存储这个 JAVA 程序,但它连接到另一个网络 - NETWORK2。是否有可能发生这种情况 - 通过我的 JAVA 程序将 PC2 从外部网络连接到 PC1 上托管的 mySQL 数据库?
3 回答
慕容3067478
TA贡献1773条经验 获得超3个赞
当然,为什么不呢?您只需要确保您PC1
可以从其他网络访问,并且必要的端口 ( 3306
) 是打开的。
您可以 ping PC1
fromPC2
以检查这是否可行。
白衣非少年
TA贡献1155条经验 获得超0个赞
您需要将bind-address
localhost 更新为 mysql 服务器的 IP。找到mysql conf文件并编辑:
mysql conf 文件的位置是/etc/my.cnf
or/etc/mysql/my.cnf
或/usr/local/mysql/etc/my.cnf
bind-address = <IP address where MySql is running>
还要确保 mysql-server 机器的端口 3306 已打开并可从其他 PC 访问。然后添加所需的权限。
开满天机
TA贡献1786条经验 获得超13个赞
是的,您可以通过将两台计算机连接到同一个 LAN 连接来做到这一点。在此之后检查安装了 mysql 的 PC 的 IP 地址。您只需在终端上键入 ifconfig(linux)/ipcofing(window) 命令即可找到它。确保您使用的本地 IP 地址(显示为 192.168.1.144)不是公共的。
在我的 /usr/local/mysql/etc/my.cnf 文件中使用该 IP 地址进行绑定,并在您的 java 程序中使用该 IP 地址。您的代码将成功运行。
添加回答
举报
0/150
提交
取消