はじめに
サービスを構成する際、変更を適用する前に、影響を与える環境に対して変更を検証することが重要です。これは、MySQLデータベースのような重要なサービスへの変更に特に当てはまります。
多くの変更は意味的正確性(構成が意図した意味になっていることを確認すること)を手動でチェックする必要がありますが、多くの場合、構文的正確性(変更が予期された形式になっていることを確認すること)のチェックを自動化できます。これは限定的ではありますが、スペルミス、不適切な句読点、および新しい変更を組み込もうとしたときにサーバーが正しく起動するのを妨げる可能性のある不正な形式の構成オプションをキャッチできる非常に役立つチェックを提供します。
この短いガイドでは、組み込みオプションを使用してMySQLサーバー構成ファイルを検証する方法について説明します。これは、実行した編集がサービスを再起動するときにMySQLに干渉しないことを検証するのに役立ちます。
MySQLサーバー構成ファイルの確認
MySQLサーバーを実行するために使用される mysqld
バイナリには、通常は使用しない多くのオプションが含まれています。その1つが --validate-config
フラグです。
--validate-config
フラグを指定すると、 mysqld
バイナリは構成ファイルを解析して終了します。検証チェックを実行するには、次のように入力します。
mysqld --validate-config
問題が見つからない場合、プログラムはMySQLサーバーを起動しようとする代わりに、出力なしで正常に終了します。プロセスが正常に終了したことを確認するには、終了コードを確認します。
echo $?
0
エラーが見つかった場合、MySQLは実際の起動シナリオと同様にプロセスを中止し、問題が発生したファイルと行に関する情報を出力します。MySQL構成ファイルに構文エラーを追加して、このプロセスをトリガーし、出力を確認できます。たとえば、次のことができます。
echo "hello there" | sudo tee --append /etc/mysql/my.cnf
これで、構成を再度確認すると、コマンドは構成に追加した問題のある行を出力します。
mysqld: [ERROR] Found option without preceding group in config file /etc/mysql/my.cnf at line 23.mysqld: [ERROR] Fatal error in defaults handling. Program aborted!
終了コードは、エラーが発生したことも検証します。
echo $?
1
sed
を使用して、MySQL構成ファイルに追加した行を削除できます。削除が成功したことを確認するために、構成ファイルを再度検証します。
sudo sed --in-place '/hello there/d' /etc/mysql/my.cnfmysqld --validate-config
サーバー構成ファイルは、構文的に正しいことが再度検証されました。
結論
このガイドでは、 --validate-config
フラグを指定した mysqld
バイナリを使用して、MySQLサーバーの構成ファイルのエラーを検証する方法について説明しました。これはすべてのエラーを検出するために使用できるわけではありませんが、タイプミス、不適切な構成文法、および無効なオプションを防ぐのに大いに役立ちます。データベースサービスを停止する前に、新しい構成が有効であることを確認するために、サーバーを再起動する前に常に --validate-config
フラグを使用することをお勧めします。
Prismaを使用している場合は、MySQLサーバーに接続し、MySQLデータベースコネクタを使用してデータを管理できます。