我的Glassfish服务器无法连接到远程MySQL数据库。
我检查了以下说明
我认为我的配置(服务器名称,数据库名称,用户名和密码)是正确的。 但仍然无法连接到数据库。
我昨晚用Google搜索,但找不到答案。
4月28日已编辑:
我的server.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}']]
答案 0 :(得分:1)
连接失败的第一个原因可能是你的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隧道端点时,对于mysql服务器,它看起来像是某个人的mysql-server-localhost正在连接。
您是否可以登录运行glassfish的服务器并执行
mysql -h 127.0.0.1 --port 13306 -u user -p
从那里开始。如果这不起作用,请检查从localhost和127.0.0.1 访问的用户的访问配置
第三个原因可能是Glassfish中缺少mysql连接器库的安装。这是described in the mysql doc,基本上是:
安装GlassFish后,请确保它可以访问MySQL Connector / J.为此,请将MySQL Connector / J jar文件复制到domain-dir / lib目录。例如,将mysql-connector-java-5.1.30-bin.jar复制到C:\ glassfish-install-path \ domains \ domain-name \ lib。重新启动GlassFish Application Server。有关详细信息,请参阅GlassFish Server Open Administration Edition管理指南中的“集成JDBC驱动程序”,可在GlassFish Server文档中找到。
<强>更新强>
在连接网址中添加:mysql:部分并引用连接器安装。
答案 1 :(得分:0)
我再试一次,问题不再复制。
我不确定我的配置是否错误。