【发布时间】:2017-09-07 11:19:43
【问题描述】:
我正在尝试将我的网站上线。 为此,我有一个 debian 和一个码头服务器。 当我尝试访问我的网站时,它会显示我的主页,所以,这没关系。
但是,当我尝试登录时,它给了我一条错误消息。
它在我的本地机器上使用这个配置工作:
<?xml version="1.0" encoding="utf-8"?>
<domain project-version="6">
<map name="datamap"/>
<node name="datanode"
factory="org.apache.cayenne.configuration.server.XMLPoolingDataSourceFactory"
>
<map-ref name="datamap"/>
<data-source>
<driver value="com.mysql.jdbc.Driver"/>
<url value="jdbc:mysql://127.0.0.1:3306/database"/>
<connectionPool min="1" max="10"/>
<login userName="username" password="password"/>
</data-source>
</node>
</domain>
所以,我验证了用户名和密码都可以。我尝试使用新配置在我自己的机器上执行我的网站:
<url value="jdbc:mysql://serverip:3306/database"/>
我错过了什么?
错误信息是:
(对不起,我正在尝试在服务器上找到可以找到码头日志的位置,我将使用完整堆栈更新它)
我想我忘记了一个信息? 我确定我的密码和服务器上 mysql 的登录名。我正在使用 SSH,配置在我的工作台中:
我使用的是maven,所以我在pom.xml中添加了mysql:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
我读到这可能是因为我们没有将 mysql 放在类路径中。但是,这应该行得通,不是吗?
编辑:我试过了:<url value="jdbc:mysql://serverusername@serverpwd/serverip:3306/database"/>,没有成功...
编辑 2:此配置有效:
<node name="datanode"
factory="org.apache.cayenne.configuration.server.XMLPoolingDataSourceFactory"
schema-update-strategy="org.apache.cayenne.access.dbsync.CreateIfNoSchemaStrategy">
<map-ref name="datamap" />
<data-source>
<driver value="com.mysql.jdbc.Driver" />
<url value="jdbc:mysql://127.0.0.1/database" />
<connectionPool min="1" max="1" />
<autoReconnect> true</autoReconnect>
<failOverReadOnly> false</failOverReadOnly>
<login userName="userName" password="password" />
</data-source>
</node>
【问题讨论】:
-
该错误是一般的连接错误。与您的凭据无关。您的数据库是否与您的 Jetty 在同一台机器上运行?尝试 ssh 到服务器,并在其中执行以下命令:“netstat -an |grep 3306”这将显示数据库是否存在并且正在使用预期的端口。
-
哦,好吧,因为我也遇到了凭证问题!我会这样做并给你答案,非常感谢,我仍然阻止
-
结果是:tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
-
:( 不知道?我仍然没有任何想法阻止这个
-
我刚刚发布了答案。请注意,Cayenne 将忽略
和 里面的URL标记。所以他们真的什么都不做。这些参数需要添加到
标签: mysql database-connection apache-cayenne