当前位置: 首页 > 知识库问答 >
问题:

Hibernate-连接到远程mysql数据库失败,而连接到本地数据库成功

吉和同
2023-03-14

当我使用此配置(连接到本地DB)时-一切正常:

    <persistence-unit name="stg">
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
    <properties>
        <!--
        <property name="hibernate.ejb.cfgfile" value="/hibernate.cfg.xml"/>
        -->
        <property name="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.ImprovedNamingStrategy"/>
        <property name="hibernate.hbm2ddl.auto" value="update"/>
        <property name="hibernate.archive.autodetection" value="class, hbm"/>
        <property name="hibernate.show_sql" value="false"/>
        <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
        <property name="hibernate.connection.password" value="PASSWORD"/>
        <property name="hibernate.connection.url" value="jdbc:mysql://127.0.0.1:3306/DATABASENAME?autoReconnect=true"/>
        <property name="hibernate.connection.username" value="root"/>
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
        <property name="hibernate.c3p0.timeout" value="3600"/>
        <property name="hibernate.c3p0.min_size" value="20"/>
        <property name="hibernate.c3p0.max_size" value="100"/>
        <property name="hibernate.c3p0.acquire_increment" value="5"/>
        <property name="hibernate.c3p0.maxIdleTimeExcessConnections" value="300"/>
        <property name="hibernate.c3p0.automaticTestTable" value="hibernate_conn_test"/>
        <property name="hibernate.c3p0.testConnectionOnCheckout" value="false"/>
        <property name="hibernate.c3p0.validate" value="false"/>
        <property name="hibernate.c3p0.testConnectionOnCheckin" value="true"/>
        <property name="hibernate.c3p0.idle_test_period" value="300"/>
        <property name="hibernate.c3p0.unreturnedConnectionTimeout" value="3600"/>
        <property name="hibernate.c3p0.numHelperThreads" value="6"/>
    </properties>
</persistence-unit>

我唯一更改的是另一台机器的IP,而我总是得到相同的错误:

            <property name="hibernate.connection.url" value="jdbc:mysql://2.2.2.2:3306/te?autoReconnect=true"/>

这是我得到的错误:

[localhost-startStop-1][     ][13 Jan 2016 16:40:43,386] [internal.JdbcServicesImpl               ]: [WARN ] HHH000342: Could not obtain connection to query metadata : Could not create connection to database server. Attempted reconnect 3 times. Giving up.

最后一个成功发送到服务器的数据包是在0毫秒前。驱动程序没有从服务器接收到任何数据包。在Sun.Reflect.NativeConstructorAccessorImpl.NewInstance0(原生方法)在Sun.Reflect.NativeConstructorAccessorImpl.NewInstance(未知源)在Sun.Reflect.DelegatingConstructorAccessorImpl.NewInstance(未知源)在java.lang.Reflect.ConstructorAccessorImpl.NewInstance(未知源)在Com.mysql.jdbc.Util.HandleneWinstance(未知源)在onnect(未知源)在java.net.socket(未知源)在java.net.socket(未知源)在java.net.socket(未知源)在com.mysql.jdbc.standardsocketfactory.connect(standardsocketfactory.java:259)在com.mysql.jdbc.mysqlio(mysqlio.java:308)...50多个

有人能帮忙吗?

我尝试改变端口,但没有帮助。我不知道从哪里开始

共有1个答案

仰英发
2023-03-14

这就叫“网络问题”。

检查以下项目:

  • 可以通过TCP 3306访问目标主机(运行telnet destination 3306或类似内容)
  • 在试图建立连接时检查netstat-na:任何syn_sent都将表示防火墙有障碍。
  • 在MySQL框上检查netstat-na-3306是否绑定到外部接口(或仅绑定到127.0.0.1/localhost?)
 类似资料:
  • 问题内容: 我刚刚在网络托管服务上设置了MySQL数据库,并尝试使用以下php远程连接至该数据库: 我对php和MySQL还是很陌生,我不了解几件事。我已将上面的代码保存在文件中(称为demo.html),并尝试在Web浏览器中查看它(当前它不显示任何内容)。 我的托管公司告诉我,应该使用数据库连接 我以为我需要包括IP地址(使用PhPMyAdmin登录时看到的地址),因此我也添加了该地址。但是,

  • 我试图连接到我的mongo数据库在我的远程服务器: 但我有一个错误: MongoDB外壳版本:2.6.10连接到:xxx。xxx。xxx。xx:27017/测试2016-11-07T05:18:39.140 0000警告:无法连接到xxx。xxx。xxx。xx:27017,原因:错误号:111连接被拒绝2016-11-07T05:18:39.142 0000错误:无法连接到服务器xxx。xxx。x

  • 我在连接到公共托管的静态IP mysql服务器时遇到了一个奇怪的问题。 我能够使用MySQL Workbench成功连接到服务器,也可以通过SSH连接到本地远程服务器。但是从jdbc连接器连接到mysql服务器的尝试(通过NetBeans和本地部署的代码都失败)。在查看日志时,代码正在尝试与远程服务器连接,考虑到用户凭据是本地用户而不是远程用户的。因此用户存在于远程,但java在尝试连接时会考虑u

  • 连接失败,出现此异常。我无法追踪到底发生了什么? 另外,getconnection之后的db2diag.log是:

  • 问题内容: 我如何使用例如MySQL查询浏览器在heroku上执行到ClearDB MySQL数据库的远程连接。在哪里获取url,端口,登录名和密码? 问题答案: 在heroku网站上,转到“我的应用程序”,然后选择已安装ClearDB的应用程序。 在右上角,单击 Addons ,然后选择 ClearDB MySQL Database 。进入数据库后,单击数据库,然后选择“ 端点信息 ”选项卡。在

  • 我在MySQL上有2个数据库。ge和GE_SC001。 我可以通过我的ASP.NET mvc应用程序在本地访问这两个。 Web.config null 稍后,当我在web服务器上部署应用程序,并尝试从本地机器访问它们时。我将server=localhost更改为机器的面向外部的IP地址。现在我只能访问一个GE。当我尝试访问第二个时,它会给我错误。 拒绝用户“root”@“对数据库”GE_SC001