2017-09-07 7 views
0

私のウェブサイトをオンラインにしようとしています。 そのために、私はdebianとjettyサーバーを持っています。 私のウェブサイトに行くと、私のホームページが表示されるので、これは問題ありません。ウェブサイトを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> 

だから、私は大丈夫です、ユーザー名とパスワードを検証しました。私は自分のマシンで新しい設定で自分のWebサイトを実行しようとしました:

<url value="jdbc:mysql://serverip:3306/database"/> 

私は何を欠席しましたか?

エラーメッセージは次のとおりです。

enter image description here

(すみません、私は、サーバー上の桟橋ログを見つけることができる場所を見つけようとしている、私はフルスタックでそれを更新します)

私は1つの情報を忘れていたと思いますか? 私は自分のパスワードとサーバー上のmysqlのログインについて確信しています。我々はdidnのために、私はそれができ読ま

<dependency> 
    <groupId>mysql</groupId> 
    <artifactId>mysql-connector-java</artifactId> 
    <version>5.1.6</version> 
</dependency> 

:私はMavenを使っているので、私はのpom.xmlにMySQLを追加 enter image description here

:私は、コンフィギュレーションは、私のワークベンチであるSSHを使用していますmysqlをクラスパスに入れません。しかし、それはうまくいくはずですね。

編集:私が試した:<url value="jdbc:mysql://[email protected]/serverip:3306/database"/>、成功せず...

EDIT 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> 
+0

このエラーは一般的な接続エラーです。あなたの資格情報とは関係ありません。あなたのデータベースはJettyと同じマシンで動作していますか?サーバーにsshを実行し、そこに次のコマンドを実行します。 "netstat -an | grep 3306"これは、DBが存在し、予期したポートを使用している場合に表示されます。 –

+0

ああ、私も資格の問題があったから!私はそれをし、あなたに答えを与える、ありがとう、私はまだそれをブロックしている – Bob

+0

結果:TCP 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN – Bob

答えて

1

接続がタイムアウトすることができます。これをURL:?connectTimeout=0&autoReconnect=trueに追加してみてください。さらに信頼性の高い結果を得るには、外部接続プールを使用してみてください。 Hikariであり、適切な再接続特性を有する。 Cayenneは起動時にServerRuntime.builder(..)。dataSource(dataSource)経由で外部接続プールを使用するように指示することができます..

+0

今、私は何の問題もありません。しかし、私は自分のデータをデータベースに保存することはできません。それは奇妙な行動です! – Bob

関連する問題