導入:なぜmy.iniの配置場所が重要なのか
MySQLの運用において、パフォーマンスチューニングやセキュリティ設定を行うために欠かせないのが設定ファイル「my.ini(Windows環境)」です。しかし、初心者が陥りがちな罠として「設定を書き換えたのに反映されない」という問題があります。これは、MySQLが複数の候補地から設定ファイルを読み込むため、意図しない場所にある古いファイルが優先されていることが原因です。本記事では、設定ファイルの優先順位を理解し、現場で管理しやすい配置方法を解説します。
基礎知識:設定ファイルの仕組み
MySQLは起動時に、あらかじめ決められたディレクトリを特定の順番で探索し、最初に見つけた設定ファイルを読み込みます。Windows環境では、主に以下の場所が探索されます。
1. %WINDIR%(通常はC:\Windows)
2. C:\(ドライブ直下)
3. BASEDIR(MySQLのインストールディレクトリ)
重要なポイントとして、インストール時に自動生成される「ProgramData」内の設定ファイルは隠しフォルダにあるため、意図せず編集してしまいがちです。管理の明確化のためには、BASEDIRにファイルを配置し、一元管理することをお勧めします。
実装/解決策:確実な設定ファイル管理手順
現場での運用では、以下の手順で管理を徹底します。
1. 隠しフォルダの表示設定:エクスプローラーの表示オプションから「隠しファイル、隠しフォルダー、および隠しドライブを表示する」を有効にします。
2. ひな形のコピー:ProgramDataディレクトリにある既存のmy.iniを、MySQLのインストールディレクトリ(BASEDIR)にコピーします。
3. 直接指定の活用:運用中のトラブルを避けるため、サービス起動時に明示的に設定ファイルを指定する方法を併用するのが安全です。
サンプルプログラム:設定ファイルの配置確認と起動オプション
MySQLの動作確認や、特定の設定ファイルを読み込ませる際のコマンド例です。コマンドプロンプトで実行可能です。
REM 1. 現在の読み込み優先順位を確認するコマンド mysql --help --verbose | findstr /C:"Default options" REM 2. 特定の設定ファイルを指定してMySQLを起動するコマンド REM --defaults-fileを使用すると、指定したファイルのみが読み込まれます "C:\Program Files\MySQL\MySQL Server 8.4\bin\mysqld.exe" --defaults-file="C:\pg\MySQL\my.ini" REM 3. 既存の設定に追記したい場合は --defaults-extra-file を使用します "C:\Program Files\MySQL\MySQL Server 8.4\bin\mysqld.exe" --defaults-extra-file="C:\custom_config.ini"
応用・注意点:現場で役立つTIPS
・優先順位の理解:複数の場所にmy.iniが存在すると、どれが適用されているか混乱を招きます。本番環境では、原則として「BASEDIR」配下にのみファイルを置き、それ以外は削除(またはリネーム)しておくのがDBAとしての鉄則です。
・文字コードに注意:my.iniを編集する際は、必ず「UTF-8(BOMなし)」で保存してください。古いエディタで保存するとBOMが付与され、MySQLが設定ファイルを認識できずに起動失敗するケースが多々あります。
・バックアップ:編集前には必ず元のmy.iniをコピーして「my.ini.bak」などの名前で保存しておきましょう。記述ミスによるサービス起動不可のリスクを最小限に抑えることができます。

コメント