MySQL起動時の疎通チェック

概要

疎通チェックして通ったらパスするような、そんな制御をいれたい場合に使えるシェルです。

mysqladmin

mysqlクライアント系の標準コマンドとして付随するmysqladminを使用したパターンです。

 if mysqladmin ping -h 127.0.0.1 -u root -pパスワード --silent; then
   echo "MySQL is up."
   break
 else
   echo "Waiting for MySQL..."
   sleep 3
 fi
done

Docker

Docker コンテナでMySQLを稼働している場合に、ステータスをチェックするパターンです。

until [ "$(docker inspect --format='{{.State.Health.Status}}' mysqlコンテナ名)" = 'healthy' ]; do
  sleep 1s
done