DataBase MySQL

MySQLのエラー、クエリ、スロークエリのログ

投稿日:2013年5月26日 更新日:

全て /etc/my.cnf の [mysqld] に追記してサーバーを再起動すれば出力されるようになります。

エラーログは開発時には警告も出力しておけばよいでしょう。

クエリログは全てのSELECTが出力されます。
運用が始まったら消しておくべきでしょう。

スロークエリは指定秒以上のSELECTを出力します。
運用が始まってからも活躍することでしょう。

[mysqld]
#エラーログ
log-error=/var/log/mysql_error.log
log-warnings=1 #0:警告はログなし、1:警告もログ出力

#クエリログ
log=/var/log/mysql_query.log

#スロークエリ
log-slow-queries=/var/log/mysql_slow.log
long-query-time=1 #1秒以上のものを出力
log-queries-not-using-indexes #indexを使用しなかった場合に出力

ちなみにmysqlユーザーは/var/log/には権限がありません。
もし例のように/var/log/にログを出力するのであれば、
root等で事前ログファイルを作成してから所有権を変更するか、パーミッションを変更します。

空ファイルを作成
# cd /var/log/
# touch mysql_query.log

所有権をmysqlに変更する
# chown mysql mysql_query.log

もしくはパーミッションを変更する
# chmod 777 mysql_query.log

Gooleアドセンス用336

Gooleアドセンス用336

-DataBase, MySQL

執筆者:

関連記事

mysql

MySQLの時間のフォーマット

MySQLのdatetime型はそのままSELECTすると、 2013-05-15 13:45:59 のように表示されてしまいます。 yyyy-mm-ddではなく、yyyy/mm/dd がいい場合もあ …

mysql

mysqldumpでテーブル毎のダンプを圧縮して取得するスクリプト

mysqldumpではデータベースを指定して一括してダンプを取得できます。テーブル毎のダンプも取得できます。 しかし、一括して取得したダンプの1つのテーブルだけをインポートすることはできません。これは …

mysql

MySQL load dataでcsvをインサートする

かなり高速でinsertしてくれます。 INDEX1 使い方2 ERROR 10453 [補足]insertを高速にする 使い方 MySQLにログインして、データベースを指定して実行します。 mysq …

mysql

utilitiesのmysqlfailoverを使う(2)

前回の utilitiesのmysqlfailoverを使う(1)で設定・起動は完了しています。 私の目的は2台のMySQLサーバーを定期的に入れ替えてメンテナンスすることです。 今回はマスターがダウ …

sqlserver

SQLSERVER「Login failed for user ‘xxxxxxx’. 理由: 指定された名前に一致するログインが見つかりませんでした」

Windows認証でAdministratorを指定しているのにログインできない。 そんな場合は以下の手順でAdministratorユーザーを作成します。 INDEX1 起動時のパラメーターの変更2 …