27

サーバーで低速クエリログを有効にするにはどうすればよいですか?log-slow-queries =[path]ファイルを追加してローカルホストで有効にしましたmy.iniが、サーバーでこれを追加する方法がわかりません。私のサーバーはLinuxベースで、PHPバージョン5.2.16を使用しています。

4

3 に答える 3

50

遅いクエリログを有効にすることは、PHPのバージョンとは何の関係もありません。MySQLサーバーで有効にする必要があります。2つの方法で有効にできます

  1. 実行時
  2. サーバー起動中

サーバーが5.1.6を超えている場合は、ランタイム自体に低速クエリログを設定できます。このクエリを実行する必要があります。

set global log_slow_queries = 1;
set global slow_query_log_file = <some file name>;

または、my.cnf/my.iniオプションファイルでこのオプションを設定することもできます

log_slow_queries = 1; 
slow_query_log_file = <some file name>;

オプションファイルを変更した場合は、MySQLサーバーを再起動する必要があります。

mysqlオプションファイルの場所はここにありますhttp://dev.mysql.com/doc/refman/4.1/en/mysql-config-wizard-file-location.html

参考までに:log_slow_queriesMySQL 5.6.1で削除され、slow_query_log代わりに使用されます。 http://dev.mysql.com/doc/refman/5.6/en/server-options.html#option_mysqld_log-slow-queries

ただし、パフォーマンスのために、ログ出力(オプションlog_output)をに設定できますTABLE。また、、などの他の低速クエリログオプションを確認することもできますlong_query_timelog-queries-not-using-indexes

于 2012-07-23T07:39:55.173 に答える
37

次のコマンドを実行して、一時的に設定できます。

set global slow_query_log = 1;
set global slow_query_log_file = '/var/log/mysql-slow.log';

ただし、mysqlを再起動すると、変更は元に戻されます。

my.cnfファイルに以下を追加することにより、永続的に設定できます。

slow-query-log=1
slow-query-log-file=/var/log/mysql-slow.log

の場所はmy.cnfOSによって異なりますが、多くの場合、、/etc/my.cnfまたは/etc/mysql/my.cnf:にあります。

変更を保存した後、MySqlを再起動する必要があります。これはOSによって異なる場合がありますが、一般的な例を次に示します。

sudo /etc/init.d/mysqld restart

sudo service mysqld restart
于 2012-07-23T06:11:45.493 に答える
13

最初(ルートとして:)

mkdir /var/log/mysql
touch /var/log/mysql/log-slow-queries.log
chown mysql:mysql -R /var/log/mysql

次に、/ etc / my.confの[mysqld]の下(または構成ファイルがある場所)

slow_query_log = 1
log-queries-not-using-indexes
long_query_time=1
log-slow-queries=/var/log/mysql/log-slow-queries.log

次:

service mysql restart

ついに:

mysql
mysql> SELECT SLEEP(10);
mysql> quit

検証:

cat /var/log/mysql/log-slow-queries.log

/usr/sbin/mysqld, Version: 5.5.42-cll (MySQL Community Server (GPL)). started with:
Tcp port: 0  Unix socket: (null)
Time                 Id Command    Argument
# Time: 150727  0:05:17
# User@Host: root[root] @ localhost []
# Query_time: 10.000215  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1437973517;
select sleep(10);
于 2015-07-27T05:10:54.980 に答える