スマートスタイル TECH BLOG

データベース&クラウド技術情報

MySQL 8.0 の RESTART 構文

MySQL 8.0 では MySQLサーバーを操作する SQL の構文 として MySQL 5.7 から存在していた SHUTDOWN に加え、新たに RESTART が追加されました。

従来は ホストサーバーにログインしてコマンドラインからMySQL サーバーを再起動していましたが、MySQL 8.0 からは MySQLサーバーに接続してSQLでサーバーの再起動させることも可能になりました。

これらの構文を実行するには SHUTDOWN 権限が必要です。

MySQL :: MySQL 8.0 Reference Manual :: 13.7.7.8 RESTART Syntax

RESTART 構文

MySQLを再起動する場合、下記のSQLを実行します

エラーログにRESTARTをどのユーザーが実行したかログに出力されます。

再起動の処理について

RESTART 構文で再起動する場合、mysqld プロセスが監視されていて、停止時に再起動が行われる仕組みがあることが前提になります。

例えば、CentOS 7 の場合、systemd の設定ファイルに正常終了以外で停止した場合、再起動するようになっています。

この仕組みを利用して、RESTART 構文を実行した場合、mysqld プロセスは終了コードで 0 以外を返せば、systemd 側で mysqld プロセスを再起動してくれることになります。

下記のように RESTART 構文を実行した際の systemd のログでは異常終了を検知してMySQLをリスタートしていることがわかります。

そのため、mysqld プロセスが監視されていない環境の場合、RESTART 構文を実行すると以下のようなエラーになります。

SHUTDOWN 構文

SHUTDOWN 構文は MySQL 5.7 から追加されていますが、ここでは改めて動作を確認しておきます。

MySQLを停止する場合は、以下のSQLを実行します

RESTART構文と同様に、エラーログに実行ユーザーが記録されます。

SHUTDOWN 構文は、mysqladmin shutdown と同様の処理をSQLで行えるようになったものになります。

MySQL :: MySQL 8.0 Reference Manual :: 13.7.7.9 SHUTDOWN Syntax

まとめ

MySQL 8.0 では、my.cnf を書き換えなくても設定値の変更ができるSET PERSIST 構文も追加されています。RESET 構文と組み合わせることで、ホストサーバーにログインすることなく、設定値の変更から再起動による反映まで行うことができるようになりました。


MySQL

 

Return Top