gpt4 book ai didi

java - 使用 JPA EclipseLink 的无连接远程 MySQL 连接

转载 作者:行者123 更新时间:2023-11-29 02:31:48 25 4
gpt4 key购买 nike

我正在使用 JPA(Eclipselink) 和直接使用远程 mysql 数据库开发桌面应用程序。

我的 persistence.xml 我有两个 PersistenceUnit,一个使用本地主机,另一个使用我的远程数据库。当我尝试加载 EntityManagerFactory 时,它在本地主机上运行良好,但从未连接到远程主机,并且没有提供任何错误,只是等待了很长时间。这是我的 persistence.xml 的一部分

Windows Server 2003 上的远程 MYSQL。

<persistence-unit name="SOFALEnterprisePU3" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://192.168.10.138:3306/sofaldb"/>
<property name="javax.persistence.jdbc.password" value="password"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.user" value="root"/>
</properties>

本地数据库

<persistence-unit name="SOFALEnterprisePU2" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/sofaldb"/>
<property name="javax.persistence.jdbc.password" value="password"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.user" value="root"/>
</properties>

最佳答案

当您说远程时,您指的是同一个 LAN 还是跨 Internet?因为 IP 192.168.10.138 指定了一个专用 LAN,因此您的远程计算机必须在同一网络上有一个地址,例如 192.168.10.*

首先确保在您的 Windows 防火墙中打开端口 3306。

如果是不同的网络,您的路由器将需要配置为转发端口,并且您必须连接到路由器的公共(public) IP。

如果是同一个 LAN,则 mysql 可能未设置为接受该用户名密码组合的远程连接。

关于java - 使用 JPA EclipseLink 的无连接远程 MySQL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12022665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com