为什么我将我的网站放在 debian 服务器上时出现 cayenne 连接错误
Why I've a cayenne connection error when I put my web site on a debian server
我正在尝试将我的网站上线。
为此,我有一个 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,配置在我的 workbench 中:
我正在使用 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>
连接可能超时。尝试将此添加到 URL:?connectTimeout=0&autoReconnect=true
。为了获得更可靠的结果,请尝试使用外部连接池,例如Hikari,具有适当的重新连接属性。可以通过 ServerRuntime.builder(..).dataSource(dataSource)..
指示 Cayenne 在启动时使用外部连接池
我正在尝试将我的网站上线。 为此,我有一个 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,配置在我的 workbench 中:
我正在使用 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>
连接可能超时。尝试将此添加到 URL:?connectTimeout=0&autoReconnect=true
。为了获得更可靠的结果,请尝试使用外部连接池,例如Hikari,具有适当的重新连接属性。可以通过 ServerRuntime.builder(..).dataSource(dataSource)..