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