2011-07-13 26 views
0

私は、LinuxのCENTOS生産環境で動作するSpring + hibernate + mysql + jstlアーキテクチャを持っています。jdbc本番で特定のクエリを使用したMySQLTransientConnectionException例外

私はクォーツ(schedualer)モジュールを追加しました。友人のクォーツは新しいファイルのフォルダを10秒ごとにチェックし、見つけたらデータベース内のファイルを拡張して読み込み、ファイルを移動します。プログラムは私のMacBookで見つけることができますが、生産現場では、データをデータベースにロードしようとするとjdbcエラーが発生しますが、データベース関連の作業はすべて正常に動作します。

私は次のようにJAVAを使用して、データベース内のファイルをロードします。私はphpmyadminののからSQLを実行する場合

String queryString = "LOAD DATA INFILE '"+path+"' INTO TABLE `branch_to_product` FIELDS TERMINATED BY ';' ENCLOSED BY '\"' ESCAPED BY '\\\\' LINES TERMINATED BY '\\n'(\n" + 
      "`product_model` , `branch_to_product_monthly_rotation` , `branch_to_product_quantity`\n" + 
      ")"; 

    Query query = getSession().createSQLQuery(queryString); 

それも見つける実行されます。

これらは私がログに表示されるエラーです。

[Loaded com.mysql.jdbc.SQLError from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar] 
[Loaded com.mysql.jdbc.NotImplemented from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar] 
[Loaded com.mysql.jdbc.exceptions.MySQLTransientConnectionException from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar] 
[Loaded com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar] 
[Loaded com.mysql.jdbc.exceptions.MySQLDataException from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar] 
[Loaded com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar] 
[Loaded com.mysql.jdbc.exceptions.MySQLSyntaxErrorException from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar] 
[Loaded com.mysql.jdbc.exceptions.DeadlockTimeoutRollbackMarker from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar] 
[Loaded com.mysql.jdbc.exceptions.MySQLTransactionRollbackException from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar] 
[Loaded java.sql.SQLRecoverableException from /usr/local/jdk1.6.0_22/jre/lib/rt.jar] 
[Loaded com.mysql.jdbc.exceptions.jdbc4.CommunicationsException from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar] 
[Loaded org.apache.tomcat.dbcp.pool.PoolUtils from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/naming-factory-dbcp.jar] 
[Loaded org.apache.tomcat.dbcp.pool.KeyedObjectPool from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/naming-factory-dbcp.jar] 
[Loaded org.apache.tomcat.dbcp.pool.PoolUtils$KeyedObjectPoolMinIdleTimerTask from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/naming-factory-dbcp.jar] 
[Loaded org.apache.tomcat.dbcp.pool.PoolUtils$ObjectPoolMinIdleTimerTask from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/naming-factory-dbcp.jar] 
[Loaded sun.net.ConnectionResetException from /usr/local/jdk1.6.0_22/jre/lib/rt.jar] 
[Loaded org.hibernate.action.BulkOperationCleanupAction from file:/usr/local/jakarta/apache-tomcat-5.5.33/shared/lib/hibernate.jar] 
0 
[Loaded org.hibernate.exception.JDBCExceptionHelper from file:/usr/local/jakarta/apache-tomcat-5.5.33/shared/lib/hibernate.jar] 
09:19:25,633 ERROR JDBCExceptionReporter:72 - Access denied for user 'jardinde_fp'@'localhost' (using password: YES) 
09:19:25,633 ERROR JDBCExceptionReporter:72 - Access denied for user 'jardinde_fp'@'localhost' (using password: YES) 

答えて

0

あなたは、単純な認証エラーがあります。

ERROR JDBCExceptionReporter:72 - Access denied for user 'jardinde_fp'@'localhost' (using password: YES)

をアプリケーションの資格情報がサーバーによって許可されていることを確認します。

投稿したログのこれらの行は、JARからこれらのクラスファイルをロードするJVMを表示していますが、エラーでも実際の問題でもありません(JVMはクラスを初めて参照してクラスをロード/参照の完全なグラフを歩かなければなりません):

[Loaded com.mysql.jdbc.SQLError from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar]
[Loaded com.mysql.jdbc.NotImplemented from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar]
[Loaded com.mysql.jdbc.exceptions.MySQLTransientConnectionException from file:/usr/local/jakarta/apache-tomcat-5.5.33/common/lib/mysql-connector-java-5.1.13-bin.jar]

+0

私はあなたのロジックが理にかなっていることを理解していますが、資格情報を使用すると、データベースのログインとパスワードは正しいでしょうか?彼らはプログラムの他の部分とうまく動作し、私はそれらをチェックし、彼らはOKか、または私がチェックすべき資格証明を作る他の要素がありますか? – Ernest

+0

IIRC mysqlは、特定のIPからログインするために 'jardinde_fp'を許可し、同じユーザが 'localhost'からログインできるようにすることを区別します - 両方が追加されていることを確認してください。パスワードが間違っているか再度確認してください。 –

-1

クエリにLOCALという単語が追加され、機能しました!

String queryString = "LOAD DATA LOCAL INFILE '"+path+"' INTO TABLE `branch_to_product` FIELDS TERMINATED BY ';' ENCLOSED BY '\"' ESCAPED BY '\\\\' LINES TERMINATED BY '\\n'(\n" + 
      "`product_model` , `branch_to_product_monthly_rotation` , `branch_to_product_quantity`\n" + 
      ")"; 

    Query query = getSession().createSQLQuery(queryString); 
関連する問題