何が問題ですか?データベースに接続できませんか?
org.Apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (
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.)
これが実際の問題の原因です。
原因:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信リンク障害
データベース通信リンクに問題があります。アプリケーションがデータベースへのネットワークアクセスを持っていることを確認してください(ファイアウォールがデータベースへのポートをブロックしていないことを確認してください)。
これはネットワークの問題です。データベース接続を確認してください。データベース接続リンク、ユーザー名、パスワードが間違っているか、データベースサーバーが停止しています。
ソースURLのlocalhost
にも同じ問題がありました。 localhost
の代わりに127.0.0.1
で解決しました。
ここでは、avastアンチウイルスが原因でした。アバストファイアウォールを無効にして、Windowsファイアウォールのみをアクティブにすることができます。
TomcatとmysqlサーバーをVirtualBox VMを使用してchefを使用してセットアップすると、同じ問題が発生します。
この場合、本当の問題はVirtualBoxがlocalhost以外のアドレスをeth0に割り当てるように見えることです
[vagrant@localhost webapps]$ /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:60:FC:47
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
次に、mysqlサーバーのバインドアドレスとして10.0.2.15を使用するシェフのレシピの自動検出機能。
私の場合、シェフのレシピのノードパラメータにバインドアドレスを指定すると問題が解決します。この情報が、浮浪者とシェフを使用している人々に役立つことを願っています。
{
"name" : "db",
"default_attributes" : {
"mysql" : {
"bind_address" : "localhost"
...
}
Windowsの次のパスにあるmy.ini
ファイルに移動しますC:\ProgramData\MySQL\MySQL Server 8.0\my.ini
以下の行をコメントします
#bind-address=127.0.0.1
次に、MySQLサーバーを再起動して接続します。
その後、他のIPアドレス/マシンからMySQLに接続できます。
この特定の問題は、ローカルホストでも発生する可能性があります。これは、ネットワークの問題またはインターネット接続の問題が原因である可能性があります。この問題は、すべてのデータベース接続プロパティが正しい場合でも発生します。
ホスト名を使用したときに、同じ問題に直面しました。代わりに、IPアドレスを使用してください。解決されます。
これは、ファイアウォールがデータベース接続をブロックするために発生します。
ファイアウォールを無効にしてから、プログラムを再度実行してください。それは私のために働いた...:D
この問題は、dbに同時にアクセスするユーザーが多すぎることが原因である可能性があります。データベースに同時にアクセスできるユーザーの数を増やすか、既存のユーザー(またはアプリ)を追い出します。 「プロセスリストを表示」を使用します。ホストDBで接続ユーザーを確認します。
Catalina.policyファイルが特定のIP/PORTへのアクセスを禁止する可能性がある別の理由に出会いました
Pom.xmlのドライバーバージョンを変更し、手伝いました
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.2</version>
</dependency>
私の場合、解決策は属性を削除することでした
validationQuery="select 1"
(Derby DB)リソースタグから。