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

Glassish无法连接到远程MySQL,但localhost可以

单于庆
2023-03-14

请给我一个机会解释我的神秘处境。

我的Glass乐于服务器无法连接到远程MySQL数据库。

我检查了以下说明

  1. ping 到远程主机 - 正常
  2. 通过 mysql 命令连接 (mysql -h remote -u user -p) - OK
  3. SSH 端口转发(ssh -L13306:本地主机:3306 远程)并配置 Glassfish 以使用它 (jdbc://127.0.0.0:13306/mydb) - 确定

我认为我的配置(服务器名、数据库名、用户名和密码)是正确的。但是仍然无法连接到数据库。

  • 乌班图17.04
  • Oracle Java 1.8.0 u131
  • 玻璃鱼 4.1(内部版本 13)
  • MySQL 连接器/J 5.1.41
  • FreeBSD 11
  • MySQL 5.5.46

我昨晚用谷歌搜索过,但找不到答案。

4月28日 编辑:

我的服务器.log 说:

[2017-04-26T09:03:07.932+0900] [glassfish 4.1] [WARNING] [test.connection.pool.failed] [javax.enterprise.resource.resourceadapter.com.sun.enterprise.connectors.service] [tid: _ThreadID=98 _ThreadName=admin-listen
er(6)] [timeMillis: 1493164987932] [levelValue: 900] [[
  RAR8054: Exception while creating an unpooled [test] connection for pool [ MysqlMacms ], Connection could not be allocated because: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.]]

[2017-04-26T09:03:07.940+0900] [glassfish 4.1] [SEVERE] [] [org.glassfish.admingui] [tid: _ThreadID=49 _ThreadName=admin-listener(5)] [timeMillis: 1493164987940] [levelValue: 1000] [[
  RestResponse.getResponse() gives FAILURE.  endpoint = 'http://localhost:4848/management/domain/resources/ping-connection-pool.json'; attrs = '{id=admtkMysqlMacms}']]

共有2个答案

端木狐若
2023-03-14

我又试了一次,问题不再重现。

我不确定我的配置是否有问题。

燕智
2023-03-14

连接失败的第一个原因可能是您的 jdbc 网址。你显示

jdbc://127.0.0.0:13306/mydb

尽管172.0.0.0是一个有效的环回地址(所有127.0.0.0/8)localhost通常配置为127.0.0.1。您还缺少mysql规范:

所以把它改成

jdbc:mysql://127.0.0.1:13306/mydb

失败的第二个可能原因:如何配置对 mysql 的访问?从 127.0.0.1 连接时,用户是否具有访问权限?当 glassfish 连接到本地 ssh 隧道endpoint时,对于 mysql 服务器来说,它看起来像是来自它的 mysql-server-localhost 的人正在连接。

你能登录到glassfish运行的服务器并执行

mysql -h 127.0.0.1 --port 13306 -u user -p

从那里。如果这不起作用,请检查从本地主机和127.0.0.1访问的用户的访问配置

第三个原因可能是Glassish中缺少mysql连接器库的安装。这在mysql文档中有所描述,基本上:

一旦安装了GlassFish,请确保它可以访问MySQL Connector/J。为此,请将MySQLConnector/Jjar文件复制到domaindir/lib目录。例如,复制mysql-connector-java-5.130-bin。jar到C:\glassfish安装路径\domains\domain-name\lib。重新启动GlassFish应用程序服务器。有关更多信息,请参阅GlassFish Server开源版管理指南中的“集成JDBC驱动程序”,该指南位于GlassFish服务器文档中。

使现代化

在连接url中添加了: mysql:部分并引用了连接器安装。

 类似资料:
  • 我的极限,数小时的变化... 我正在尝试访问已安装的运行在EC2实例上的MySQL。经过大量搜索(这似乎最接近我的问题是从远程服务器连接到Amazon EC2上的mysql),我显然遗漏了一些愚蠢的或误解的东西。 EC2 Ubuntu,mysqld运行良好,本地Web/App服务器工作良好,所有连接。我可以从本地的mysql。我需要使用Iron.io对这个开发机器进行外部访问,它需要从外部访问数据

  • 我在A机上设置了伪分布式模式的Hadoop和Hbase,我正在B机上运行我的客户端(Java程序)(A机和B机可以互相通信)。但我这样做面临问题。 我的客户端代码如下所示: 配置config=HBaseConfiguration.create(); config.set(“HBase.ZookeePer.quorum”,zookeeperLocation);config.set(“hbase.zo

  • 我已经使用docker工具箱在视窗机器上安装了docker。我也在我的视窗机器上安装了mysql,服务器运行在端口3306上(localhost-127.0.0.1-在docker机器之外)。我在一个名为“micra-workq-svc”的docker网络内部的docker容器中运行一个冲刺启动应用程序,我希望在docker内部运行的应用程序连接到本地主机。我花了几个小时在谷歌上搜索,没有一个链接

  • 问题内容: 我正在尝试使用jstatd用jps查询远程JVM,以便最终使用VisualVM对其进行监视。 我让jstatd使用以下安全策略运行: jstatd在带有1.6.0_10版本的HotSpot vm的64位Linux机器上运行。jstatd命令是: 我正在尝试从Windows 7计算机运行jps。由于防火墙的限制,我通过SSH隧道将RMI数据通过隧道传输到我的Windows计算机,这样jp

  • 当我试图将我的一台机器用作WinRM客户端以连接到另一台机器时,我的一台机器出现问题。场景是: Window 7上的问题机器(VM A)已经启用了WinRM(已经运行winrm快速配置,Enable-PSRemoting),然后我将远程机器(VM C)的IP添加到VM A的受信任主机中,然后运行Test-WSMan,我得到这个错误Test-WSMan: 客户端无法连接到请求中指定的目标。验证目标上

  • 问题内容: 我已经在服务器上安装了Kibana 5.4和Elastic search 5.4,我可以通过使用本地计算机上的curl来访问Kibana和Elastic search 我得到以下回应 var hashRoute =’/ app / kibana’; var defaultRoute =’/ app / kibana’; var hash = window.location.hash;