はじめに
サービスを構成する際には、変更が影響を与える環境に適用する前に、その変更を検証することが重要です。これは、MySQLデータベースのような基幹サービスに加えられた変更には特に当てはまります。
多くの変更は意味的な正確性(構成が意図した意味を持つことを確認する)のために手動でチェックする必要がありますが、構文的な正確性(変更が期待される形式であることを確認する)のチェックは自動化できることがよくあります。これは限定的ではありますが、スペルミス、不正確な句読点、不正な形式の構成オプションなどを捕捉できる非常に役立つチェックであり、これらがないと新しい変更を組み込もうとしたときにサーバーが正しく起動しない可能性があります。
このショートガイドでは、組み込みオプションを使用してMySQLサーバー構成ファイルを検証する方法について説明します。これにより、サービスを再起動したときに、行った編集がMySQLに干渉しないことを確認できます。
MySQLサーバー構成ファイルの確認
MySQLサーバーを実行するために使用されるmysqld
バイナリには、通常は使用しない多くのオプションが含まれています。その一つが--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
サーバー構成ファイルが再び構文的に正しいことが確認されました。
まとめ
このガイドでは、mysqld
バイナリと--validate-config
フラグを使用して、MySQLサーバーの構成ファイルのエラーを検証する方法について説明しました。これによりすべてのエラーを検出できるわけではありませんが、タイプミス、誤った構成文法、無効なオプションの防止に大いに役立ちます。データベースサービスを停止する前に、新しい構成が有効であることを確認するために、サーバーを再起動する前には常に--validate-config
フラグを使用することをお勧めします。
Prismaを使用している場合、MySQLデータベースコネクタを使用してMySQLサーバーに接続し、データを管理できます。