Web開発プロジェクトでMySQLを扱う際、設定ファイルの構造を理解しておくとトラブルシューティングがスムーズになります。
目次
メインの設定ファイル
MySQLの設定はmy.cnf(Linux/Mac)またはmy.ini(Windows)で管理されます。これがメインの設定ファイルです。
追加で/etc/my.cnf.d/ディレクトリに個別の設定ファイルを配置することもできます。これにより設定を分割して管理しやすくなります。
インストール後の構成
MySQLをインストールすると、既存のディレクトリ内にMySQLのファイルが追加される形です。
Linux系
/
┣ etc/
┃ ┣ my.cnf (メイン設定ファイル)
┃ ┗ my.cnf.d/ (追加設定ファイル用ディレクトリ)
┃ ┗ custom.cnf
┣ var/
┃ ┣ lib/
┃ ┃ ┗ mysql/ (データディレクトリ)
┃ ┃ ┣ ibdata1 (InnoDBシステムテーブルスペース)
┃ ┃ ┣ mysql/ (システムデータベース)
┃ ┃ ┣ your_database/ (作成したデータベース)
┃ ┃ ┗ ib_logfile0, ib_logfile1 (トランザクションログ)
┃ ┗ log/
┃ ┗ mysqld.log (エラーログ)
┗ usr/
┗ bin/
┣ mysql (クライアント)
┗ mysqld (サーバー本体)
| 項目 | カテゴリ | 名前 | 主なパス | 概要 |
| データベース | システム | information_schema | /var/lib/mysql/information_schema/ (論理的) | データベースやテーブルの定義情報を格納する標準的なスキーマ。 |
| データベース | システム | mysql | /var/lib/mysql/mysql/ | ユーザー権限、パスワード、設定など、サーバーのコア動作情報を格納。 |
| データベース | システム | performance_schema | /var/lib/mysql/performance_schema/ | サーバーのパフォーマンス測定や実行時情報を格納。 |
| データベース | システム | sys | /var/lib/mysql/sys/ | performance_schema の情報を扱いやすくしたビューや関数を提供。 |
| システムファイル | データ | ibdata1 | /var/lib/mysql/ibdata1 | InnoDBストレージエンジン全体の共有テーブルスペースファイル。 |
| システムファイル | 接続 | mysql.sock | /var/lib/mysql/mysql.sock (または /tmp/mysql.sock など) | ローカル接続時に使用されるUnixソケットファイル。 |
| システムファイル | ログ | binlog.00000X | /var/lib/mysql/binlog.000001 など | データベースの変更履歴(バイナリログ)を記録するファイル。 |
| システムファイル | 設定 | auto.cnf | /var/lib/mysql/auto.cnf | サーバーのユニークID(UUID)が格納されているファイル。 |
Windows系
C:\Program Files\MySQL\MySQL Server 8.0\
┣ bin\ (実行ファイル)
┣ data\ (データディレクトリ)
┗ my.ini (設定ファイル)
設定ファイルの読み込み順序
複数の設定ファイルがある場合、後から読み込まれた設定が優先されます。どの順序で読み込まれるかは以下のコマンドで確認できます。
mysql --help --verbose | grep my.cnf
設定ファイルのセクション
設定ファイルは用途別にセクションで分かれています。主なセクションは以下の通りです。
[mysqld]– MySQLサーバーの設定[client]– クライアント全般の設定[mysql]– mysqlコマンドラインツールの設定
エラーログの確認
トラブル時にはエラーログを確認しましょう。デフォルトでは/var/log/mysqld.logなどに保存されています。
MySQLバージョンアップ
8 . 0 . 33
↑ ↑ ↑
メジャー マイナー パッチ
(Major) (Minor) (Patch)
パッチバージョンアップ(8.0.33 → 8.0.40)
パッチバージョンは後方互換性が高いですが、
リリースノートを確認
https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-40.html
mysqldumpでバックアップ
mysqldump: [Warning] Using a password on the command line interface can be insecure.
bash-4.4# ls
backup_20251207.sql boot docker-entrypoint-initdb.d etc lib media opt root sbin sys usr
bin dev entrypoint.sh home lib64 mnt proc run srv tmp var
bash-4.4#./vendor/bin/sail down
./vendor/bin/sail build --no-cache mysql
./vendor/bin/sail build up -d| セクション | 内容 |
|---|---|
| C API Notes C言語のAPIに関する変更。アプリケーション開発者向け。通常は無視してOK。 | 非同期インターフェースが安全でない静的ローカル変数を使用していた問題を修正 |
| Compilation Notes MySQLをソースからビルドする際の変更。使用ライブラリのバージョンアップ等。Dockerイメージ使用なら無視してOK。 | ・Fedora 41、Ubuntu 24.10でコンパイルできない問題を修正 ・curl 8.9.1へアップグレード ・zlib 1.3.1へアップグレード ・lz4 1.10.0へアップグレード ・libfido 1.15.0へアップグレード |
| SQL Function and Operator Notes SQL関数や演算子の変更・修正。例: DATABASE(), AES_ENCRYPT()等。使っている関数があれば確認必要。 | DATABASE()関数がUNIONクエリ内で使用された際に出力が切り捨てられていた問題を修正 |
| Performance Schema Notes パフォーマンス監視機能の変更。ロック情報、クエリ統計等。パフォーマンス調査時に関係。 | ・data_locksとdata_lock_waitsテーブルのクエリパフォーマンスを改善 ・SELECT * FROM sys.innodb_lock_waits; のパフォーマンスを改善 ・DATA_LOCKSとDATA_LOCK_WAITSに主キーを追加 |
| sys Schema Notes sysスキーマ(パフォーマンス分析用のビュー)の改善。パフォーマンス分析時に関係。 | innodb_lock_waitsビューのパフォーマンスを改善 |
| Thread Pool Notes スレッドプール(Enterprise版の機能)の変更。Community版使用なら無視してOK。 | 同時接続試行が正しく処理されない問題を修正 |
| Functionality Added or Changed 新機能・変更された機能。必ず確認すべき。 | 重要: OpenSSLライブラリを3.0.15へ更新(セキュリティ修正) mysqlクライアントに–system-commandオプションを追加 |
| Bugs Fixed 修正されたバグ一覧。自分のアプリに影響ないか確認必要。 | ・InnoDBのJOINクエリのパフォーマンス問題を修正 ・INSTANT algorithmでのDELETE/UPDATE時の予期しない停止を修正 ・全文検索インデックスの最適化問題を修正 ・パーティションテーブルのALTER TABLEの問題を修正 ・Group Replicationのメモリリークを修正 ・mysqldumpのSQL文エスケープ問題を修正 ・AES_ENCRYPT()関数が正しい結果を返さない問題を修正 ・CREATE TABLE … SELECT文の処理問題を修正 ・外部キー付きCREATE TABLEの問題を修正 |