CNF ファイル形式とは?
.cnfは、MySQLリレーショナルデータベースおよびその互換フォークであるMariaDBに関連付けられた設定ファイルです。.cnfファイルは、データベースの起動オプションをプレーンテキストで保存し、INI形式の[section] key = value構文を使用します。標準的なファイルはmy.cnfで、通常LinuxやmacOSシステムでは/etc/my.cnfまたは/etc/mysql/my.cnfに配置されます。Windowsでは、同等のファイルは通常my.iniという名前になります。
.cnfファイルは、バッファサイズ、キャッシュ設定、文字エンコーディング、ネットワークオプションなどのデータベースパラメータを定義します。最も重要な設定の1つはwait_timeoutパラメータで、これはサーバーがアイドル状態の接続を閉じるまでの待機時間を決定します。これは、大規模なデータベースや複雑なクエリを使用するアプリケーションにとって特に重要です。その他のディレクティブは、InnoDBバッファプール、バイナリログ、最大接続数などを制御します。
MySQLは、ドキュメント化された一連のパスから順番にオプションファイルを読み込み、後のファイルの設定が前のファイルの設定を上書きします。!includeおよび!includedirディレクティブを使用すると、設定を複数の.cnfファイルに分割できます。
MySQLは、ウェブサイト、企業向けアプリケーション、クラウド展開で広く使用されている最も人気のあるリレーショナルデータベース管理システムです。Oracleによって維持されている無料のオープンソース技術です。コミュニティフォークであるMariaDBも同じ.cnfオプションファイルの構文を使用しており、Linuxサーバー上で同様に普及しています。
セキュリティと安全性
リスク: MEDIUMファイルの閲覧は安全ですが、2つの実質的な注意点があります。(1) 編集のリスク:[mysqld]内の無効なオプションやタイポは「MySQLが起動しない」一般的な原因です。ファイルをバックアップし、一度に1つのオプションを変更し、再起動前に検証してください。(2) 認証情報の露出:.cnfファイル(特に~/.my.cnf)にはデータベースのユーザー名とパスワードが平文で保存されることが多いため、ファイルの権限を制限(chmod 600)し、公開リポジトリにコミットしないでください。ダウンロードした「最適化済みmy.cnf」チューニングファイルは慎重に扱い、オプションがサーバーのRAMやバージョンに適しているか確認してください。
形式の詳細
概要- OpenVPN設定 / 証明書ファイル - 一部のOpenVPNおよびOpenSSLのセットアップでは、設定や証明書署名要求の設定(例:openssl.cnf)に.cnfを使用します。
- MAME / アーケードエミュレータ設定 - MAMEおよび一部のエミュレータは、ゲームごとの.cnf設定ファイルを書き出します。
- 汎用アプリケーション設定 - 様々なプログラムが、MySQLとは無関係にプレーンテキストの設定ファイルとして.cnfを再利用しています。
CNF ファイルを開くプログラム
技術的詳細
詳細仕様| ファイル形式 | バイナリエンコーディングのないプレーンテキストINI形式オプションファイル |
| 構文構造 | [mysqld]や[client]などのセクションヘッダーと、それぞれのkey = valueオプション行 |
| 文字エンコーディング | ASCII / UTF-8 |
| 一般的なファイルサイズ | 1 KB - 30 KB |
| 標準的なファイル名 | LinuxおよびmacOSではmy.cnf、Windowsではmy.ini(構文は同じで名称が異なる) |
| デフォルトの検索パス | /etc/my.cnf, /etc/mysql/my.cnf, ~/.my.cnf - ドキュメント化された順序で読み込まれ、後のファイルが前を上書きする |
| セクショングループ | [mysqld], [client], [mysqldump], [mysqld_safe], [mysql] |
| インクルードディレクティブ | !includeおよび!includedirにより、管理者は設定を複数のファイルに分割可能 |
| コメント構文 | # または ; で始まる行 |
| セキュリティ上の考慮事項 | データベースのパスワードが平文で含まれる可能性があるため、Unixシステムではchmod 600で保護する必要がある |
| MIMEタイプ | text/plain |
| ファイルシグネチャ | なし - バイナリシグネチャではなく、[mysqld]などのINI形式のセクションヘッダーで識別される |
| 互換性のある製品 | MySQL 5.x / 8.x および MariaDB 10.x / 11.x - 両者とも同一のオプションファイル構文を使用 |
| 設定される主なオプション | innodb_buffer_pool_size, wait_timeout, max_connections, character-set-server, bind-address |
| 圧縮 | なし - 常に非圧縮のプレーンテキストとして保存される |
| 開発元 | Oracle Corporation (MySQL) および MariaDB Foundation |
| リリース日 | MySQL option files, mid-1990s (my.cnf on Unix; my.ini on Windows) |
| 最新バージョン | Ongoing - same INI option-file syntax across MySQL 8.x and MariaDB 11.x |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | dev.mysql.com |
CNF の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。CNF ファイルについて最初の質問をしてみましょう。