MySQLのログファイル ログの種類と保存先
MySQLのログファイルは、実行エラーログ・クエリログ・スロークエリログ・トランザクションログがあります。
ログファイルはMySQLデータディレクトリに格納されます。
[参考記事] MySQLでクエリーをログに記録する方法
実行エラーログ
クエリログ
スロークエリログ
トランザクションログ
MySQL起動コマンドから設定する方法と、設定ファイルで設定する方法があります。
起動コマンドからの設定の場合はMySQL停止まで有効で、設定ファイルの場合は設定削除後の再起動まで有効です。
ログファイルの格納先(保存先)
ログファイルの格納先(保存先)は設定ファイルのdatadirディレクティブで設定されています。
UNIX、Linuxの場合
[mysql] datadir=/var/lib/mysql
Windowsの場合
[mysql] datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
設定ファイル
MySQLの設定ファイルはLinuxではmy.cnf、Windowsではmy.iniです。
UNIX、Linuxの場合
/etc/my.cnf
Windowsの場合
C:\Program Files\MySQL\MySQL Server 5.5\my.ini
実行エラーログ
起動、停止及び実行時のエラーが保存されます。
MySQLで障害発生時に障害特定の情報を得ることが出来ます。
コマンドでの設定方法
UNIX、Linuxの場合
$ mysqld_safe --log-error=myerror.log -w 1
Windowsの場合
C\> mysqld-nt --log-error=myerror.log -w 1
-w [-wlevel]
level 0:警告メッセージは記録されません。
level 1:警告メッセージが記録されます。(デフォルト)
設定ファイルでの設定方法
[mysqld] log-error=myerror.log log-warnings=1
log-warnings
level 0:警告メッセージは記録されません。
level 1:警告メッセージが記録されます。(デフォルト)
クエリログ
全てのSQL文(接続を含む)が保存されます。
クエリログはクエリを受け取った時点でログを書き込みます。
サーバ負荷の問題があるので、開発時またはデバッグ時に使用します。
コマンドでの設定方法
UNIX、Linuxの場合
$ mysqld_safe -l myquery.log
Windowsの場合
C:\> mysqld-nt -l myquery.log
設定ファイルでの設定方法
[mysqld] log=myquery.log
スロークエリログ
指定した時間(秒)に処理が終了しなかったSQL文とINDEXを使用しなかったSQL文が保存されます。
コマンドでの設定方法
UNIX、Linuxの場合
$ mysqld_safe --log-slow-queries=myslow.log --long-query-time=30 --log-queries-not-using-indexes --log-slow-admin-statements
Windowsの場合
C:\> mysqld-nt --log-slow-queries=myslow.log --long-query-time=30 --log-queries-not-using-indexes --log-slow-admin-statements
--log-slow-queries | ログファイル名 |
--long-query-time | この時間より処理が長かった場合にログを出力する |
--log-queries-not-using-indexes | INDEXを指定しなかった場合にログを出力するよう指定 |
--log-slow-admin-statements | 管理用コマンドの実行が遅かった場合もログを出力するよう指定 |
設定ファイルでの設定方法
[mysqld] log-slow-queries=myslow.log long-query-time=30 log-queries-not-using-indexes log-slow-admin-statements
log-slow-queries | ログファイル名 |
long-query-time | この時間より処理が長かった場合にログを出力する |
log-queries-not-using-indexes | INDEXを指定しなかった場合にログを出力するよう指定 |
log-slow-admin-statements | 管理用コマンドの実行が遅かった場合もログを出力するよう指定 |
トランザクションログ
MySQLに対する全てのデータベースの更新情報が保存されます。
サーバのパフォーマンスが約1%程度低下することがあります。
コマンドでの設定方法
UNIX、Linuxの場合
$ mysqld_safe --log-bin=mysbin --log-bin-index=mysql-bin.index --max-binlog-size=1G --expire-log-days=7 --binlog-do-db=members --binlog-do-db=items
Windowsの場合
C:\> mysqld-nt --log-bin=mybin --log-bin-index=mysql-bin.index --max-binlog-size=1G --expire-log-days=7 --binlog-do-db=members --binlog-do-db=items
--log-bin-index | ログファイル名 |
--max-binlog-size | サイズを超えた場合は、ファイルをローテートして使用 |
--sync-binlog | 書き込み時に、ファイル書き込みの同期を行うか指定 0:無効 1:同期 |
--expire-logs-days | ログの保持期間 |
--binlog-do-db=dbname | ログを取るデータベースを指定 |
--binlog-ignore-db=dbname | ログを取らないデータベースを指定 |
設定ファイルでの設定方法
[mysqld] log-bin=mysql-bin log-bin-index=mybin.index max-binlog-size=1G expire-log-days=7 binlog-do-db=members binlog-do-db=items
log-bin-index | ログファイル名 |
max-binlog-size | サイズを超えた場合は、ファイルをローテートして使用 |
expire-logs-days | ログの保持期間 |
binlog-do-db=dbname | ログを取るデータベースを指定 |
binlog-ignore-db=dbname | ログを取らないデータベースを指定 |
関連記事
- Seedの実行順(外部キー制約などを先に実行させる方法) Foreign key violation
- EC-CUBE2系で商品を大量にカートに入れると注文情報が抜けたりカートが消えたりする
- yumのius(iuscommunity.org)でエラーが出る場合
- iusリポジトリで公開されているパッケージの一覧
- phpMyAdminでログイン画面を出さずにデータベースに接続する方法
- MySQLやMariaDBは標準ではログローテートされない
- MySQL(MariaDB)をユーザー情報を含めてすべて移行する方法
- 4.0以前と4.1以降のパスワード方式の違い
- CakePHPでカラムを比較してSELECTする方法
- 『Table is marked as crashed and should be repaired』の修復方法
- コマンドやphpMyAdminで複数のデータベースに接続できるユーザーを作成する方法
- phpMyAdminで『information_schema』などを非表示にする方法
- PDO_MYSQLをインストールする方法
- 日付型のフォーマットにスラッシュを使ってはいけません(文字コードによって値が変わる)
- MySQLでdatetime型(日時)を日付で抽出するSQLの速度比較
- データベースを定時バックアップする方法(毎日バックアップする処理)
- MySQL関数のまとめ
- MySQLの処理を停止させる方法
- MySQLサーバに接続できるかどうかを確認する
- 複数のデータベースを切り替える方法(別データベースを使用する)
- MySQLで文字化けを防ぐ方法
- 別テーブルでSELECT JOINしながらUPDATEする方法(SELECTした結果でUPDATEする)
- OpenPNE3のデータベースの設定
- 文字コードを指定する方法
- LIMITで件数制限をしつつ、全件数を取得する方法 SQL_CALC_FOUND_ROWS FOUND_ROWS()
- SQL Buddy ブラウザベースのMySQL管理ツール
- Got a packet bigger than 'max_allowed_packet' bytes
- CakePHPのDB接続情報設定
- SQL文で特定の曜日のみ抽出するには
- OpenPNE3のサーバ移行の方法
- EC-CUBEのサーバ移行の方法
- EC-CUBEのバックアップ機能とリストア
- EC-CUBEでMySQLデータベースのデータ取得で文字化けするときの対処法
- symfonyのORマッパ(Propel、Doctrine)
- Ruby on Railsのマイグレーションの型とMySQLの型の対応表
- MySQLでランダムな数字を得る方法
- MySQLでBeep音を消す設定
- Zend_DBのSELECTメソッドのまとめ
- Zend_DBの基本
- MySQLでクエリーをログに記録する方法
- MySQLのインストール
- Zend Frameworkのデータベース接続
- WordPressのインストール
- DB設計を見直してEC-CUBEを高速化する
- WindowsでMySQLを再起動する方法
- レコード挿入時の #1364 - Field doesn't have a default value
- オフセットの後半になると急に遅くなる MySQLの高速化
- Beep音を無効にする
- MySQL Query Browser 本家GUIツール
- CSE(Common SQL Environment) SQL便利ツール
- Symfony PropelでのMySQLの設定方法
- MySQLのソケットエラー
- utf8_general_ci と utf8_unicode_ci の違い
- 文字列型(データ型)のまとめ
- 日付と時刻型(データ型)のまとめ
- 数値型(データ型)のまとめ
- 個体識別情報・UIDの取得方法
- Windows MySQLインストール後の設定
- Windows MySQLのインストール
スポンサーリンク