まとまりのないブログ

something which something is something

mysql

failure:Cannot create PoolableConnectionFactory (Could not create connection to database server. Attempted reconnect 3 times. Giving up.)

投稿日:2019年10月23日 更新日:

failure:Cannot create PoolableConnectionFactory (Could not create connection to database server. Attempted reconnect 3 times. Giving up.)

またこのエラー。JAVAでmysqlに接続するときのgetConnection()時にエラーが発生する。このエラーが発生するときの原因としては、

  • mysqlサーバーが起動していない
  • mysqlに接続するためのユーザーが作成されていない
  • Jdbcドライバが正しくロードされていない

これぐらいしか思い当たらない。mysqlに接続するユーザーとその権限が正しく設定されていれば(ipアドレスと対象のDBなど)問題ないはず。だが、意味がわからないタイミングでこのエラーが発生するようになった。数日前まで問題なく接続できていたのに突然このエラーが発生するという意味不明な状況。接続設定情報が変更されたわけでもなく、接続マシンのipが変わったわけでもなく、ただただ繋がらない。他のサーバーには繋がるが、特定のサーバーに繋がらないという状況なので接続のPCには原因はないと思われる。原因を調査中。

なんかよくわからないけど直った

レンタルしてたサーバ側のPCを強制再起動したら直って接続できるようになった。

原因は同時接続数だった

サーバーの再起動で問題が解消したので、設定でおかしなところがあるのかもと調べたらmysqlのmax_connectionの値が低く抑えられていた。(自分が設定したんだけれども)
最大接続数を越える接続があった場合にも上記のエラーが発生する模様・・・かな。接続数の上限まで達して接続できないのならToo many connectionsというエラーが出るはずなのだけれど勘違いかもしれない。とりあえず接続数の上限に余裕をもたせた設定にして様子見。

ポートが違ってた

自分で設定していて忘れていただけなんだが。mysqlサーバーを起動するポートをデフォルトの3306以外に変更していてそれを忘れていた。それで繋がらない繋がらないと一人で悩んでいた。ポートを変更していたら接続するjdbcのurlにもポートを指定しないといけない(当たり前)

url=”jdbc:mysql://DBのパス:3307/db1?autoReconnect=true

my.cnfファイルのbind-addressの設定

設定ファイルであるmy.cnfファイル(/etc/mysql/mariadb.conf.d/50-server.cnf)に

bind-address = 127.0.0.1

という記述があればリモートからのアクセスができないためこの部分をコメントアウトする。

-mysql

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

no image

mysqlのレプリケーションでのエラー:ERROR 1064

レプリケーションしているサーバで時々エラーが発生してスレーブ動作が止まる。よくあることと思いsql_skip_slave_counterに1を代入してエラーが発生する度に飛ばしていたのだけれど、詳しく …

no image

HAPROXYを使ってmysqlサーバーの負荷分散

備忘録 listen mysql-db bind *:3306 mode tcp option mysql-check user haproxy1 balance roundrobin server …

no image

マシンスペックとデータベースのパフォーマンスの関係

マシンが高性能であればあるほど良いに越したことはないが、データベースソフトウェアのパフォーマンスにおいてはマシンの高性能化はあまり意味があるとはいえない。データベースのパフォーマンスを向上させるために …

no image

結果の行数をカウントする

mysqlで結果の行数をカウントするsql文は、 seletc count(*) from foo; で取得するのが最も簡単ではあるけれど、レコード数が膨大な場合にはパフォーマンスの面で問題になる場合 …

no image

ssdでデータベースサーバを構築してみた

現状ではまだ手を出すのは早いかもしれないssdでデータベースサーバを構築してみた。実験的な意味で。