質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

2回答

1839閲覧

slow_queryの設定方法を教えてください

blossan

総合スコア154

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2016/11/04 03:10

御世話になります。
mysql初心者のため、slow_queryの設定記述をうまく利用できません。

現在、AWSのEC2でサービスを開発をしています。
mysqlデーモンの処理が重くその原因を調べるため、slow_queryを利用したいと考えています。
以下のような記述でslow_queryのデータを取得できるようで、サービスのディレクトリに入り、mysqlにログインした後に、以下のコマンドをそのまま打ちました。

mysql

1//slow_queryをONにする 2slow_query_log = 1 3//slow_queryを、サービスディレクトリに「log-slow-queries.log 」に出力する 4slow_query_log_file = ./log-slow-queries.log 5//2秒以上の処理を対象する 6long_query_time = 2

しかし、

mysql

1mysql> show_query_log=1 2 -> show_query_log_file = ./log-slow-queries.log 3 -> long_query_time=2 4 ->

log-slow-queries.log が、現在入っているディレクトリに出力されませんでした。
たぶん、基本的な部分に間違いがあると考えていますが、slow-query 部分しか説明されていないサイトしかなく、自分の環境でうまく扱えない現状です。

ディレクトリの構造は、EC2で開発環境を頂き、

/develop/サービス名のフォルダ

の状態で、上記のコマンドを入力しました。アドバイスを頂けると助かります

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

/etc/my.cnfに次の記述をしてMySQLを再起動してください。

slow_query_log=1 slow_query_log_file=/var/log/mysql-slow-queries.log long-query-time=2

フルパスで指定したほうが良いと思います。

投稿2016/11/04 03:16

編集2016/11/04 03:17
moonphase

総合スコア6621

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

popobot

2016/11/04 03:20

[mysqld]セクションのところに書かないとだめかもですね。
blossan

2016/11/04 04:05

/var/log/mysql-slow-queries.logの「/var/log/」とは、homeディレクトリに存在するフォルダでしょうか? 現在、ルート権限者者から部分的に領域を頂いていて、フルパスのような上からの指定に関してよくわかりません。できれば、現在いる相対ディレクトリで解決したいと考えています。
moonphase

2016/11/04 04:14

mysqldプロセスが稼働しているCWD(カレントディレクトリ)から相対パスを指定してください。 また、mysqldプロセスの実行ユーザーが書き込み可能な空ファイルを作成してあげてください。 chmod 666 mysql-slow-queries.log 等。 ローテーションする場合は、ディレクトリに書き込み権限を与えてください。
guest

0

set globalコマンドでオンラインで変更することもできます。
Mysql slow queryの設定と解析方法
※まぁ、MySQLのユーザに権限が必要かもしれませんが

投稿2016/11/04 06:02

popobot

総合スコア6586

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

blossan

2016/11/04 06:32

御世話になります。この場合、 slow_query_log_file というログファイル「mysql-slow.log」は、ルートディレクトリのすぐ下に出力されるということでしょうか?
popobot

2016/11/04 07:00 編集

slow_query_log_fileに絶対パスではなくファイル名を指定した場合は、datadirの設定先に出力されるようです。 '/tmp/slow.log'とか指定すれば、/tmp配下に書くようにもできますよ なお、参考サイトをよく読むとわかりますが、set global log_output = 'TABLE';とすれば、 ファイルではなくテーブルに書くこともできます。
blossan

2016/11/04 06:55

まだ、サーバーサイドのディレクトリ関係が苦手で、少し抽象的な質問をしてしまいました。 質問に答えて頂きありがとうございます。
popobot

2016/11/04 07:00 編集

いえいえ、質問の意味がわかりました! slow_query_log_fileに絶対パスではなくファイル名を指定した場合は、datadirの設定先に出力されるようです。以下のコマンドで確認できます。 MYSQL> show variables like 'datadir';
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問