18
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

「Communications link failure」が出る時

Posted at

MySQLのポート番号を調べる

MySQLのListenしているポートを調べます。

mysql> show variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3307  |
+---------------+-------+

以下のコマンドでポート確認できているつもりになっていると、ハマる場合があります。
実際にはmysql.sockが使われている場合があります。

確認コマンド
$ mysql -uroot -hlocalhost -P3306 -p

シェルコマンドで確認する場合は、telnetで行うのが確実です。

MySQLのコネクションタイムアウト値を調べる

MySQLのコネクションタイムアウト値が短すぎると、JDBCのコネクションプール機能を使用している時にエラーが出る場合があります。

以下のコマンドで、コネクションタイムアウト値wait_timeoutが短すぎないか確認します。

show global variables like '%wait%';
+---------------------------------------------------+----------+
| Variable_name                                     | Value    |
+---------------------------------------------------+----------+
| innodb_lock_wait_timeout                          | 120      |
| innodb_spin_wait_delay                            | 6        |
| lock_wait_timeout                                 | 31536000 |
| performance_schema_events_waits_history_long_size | 10000    |
| performance_schema_events_waits_history_size      | 10       |
| wait_timeout                                      | 60       |
+---------------------------------------------------+----------+

確実に接続したい場合は、default.poolValidationQueryを設定して、接続確認を行うようにします。

default.poolValidationQuery="select 1 as one"

■参考
scalikejdbcでmysqlとの通信時のCommunicationsExceptionに対処する
http://zudoh.com/archives/248

18
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?