私はMysqlサーバーがすべてのアクティビティの記録を保存するログファイルを作成することを読みました。
誰が私のシステムのどこに存在するのか教えてもらえますか?どうやって読むことができますか?
基本的に、私は異なる入力でデータベースをバックアップする必要があります[2つの日付間のバックアップ]それで私はここでログファイルを使用する必要があると思います、それが私がそれをしたい理由です...
ユーザー名やパスワードなどの機密情報がログに記録される可能性があるため、このログは何らかの方法で保護する必要があると思います。簡単に見えないように固定されていませんか。
システムへのrootアクセス権がありますが、どうすればログを見ることができますか?
/var/log/mysql.logを開こうとすると、空です。
これは私の設定ファイルです:
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
Nice = 0
[mysqld]
log = /var/log/mysql/mysql.log
binlog-do-db=zero
user = mysql
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
skip-external-locking
bind-address = 127.0.0.1
#
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
general_log_file = /var/log/mysql/mysql.log
general_log = 1
これを有効にする簡単な方法は次のとおりです。 mysqlでは、3つのログを頻繁に見て、プロジェクトの開発中に必要となることがほとんどです。
The Error Log
。サーバーの実行中に発生したエラーに関する情報(サーバーの起動と停止も含まれます)
The General Query Log
。これは、mysqldが行っていること(接続、切断、クエリ)の一般的な記録です。
The Slow Query Log
。 (名前が示すように)「遅い」SQL文で構成されます。
デフォルトではMYSQLではログファイルは有効になっていません。すべてのエラーはsyslogに表示されます(/ var/log/syslog)。
有効にするには、以下の手順に従ってください。
step1:このファイル(/ etc/mysql/conf.d/mysqld_safe_syslog.cnf)に移動し、それらの行を削除またはコメントします。 。
step2:mysql設定ファイル(/etc/mysql/my.cnf)に行き、以下の行を追加してください。
エラーログを有効にするには以下を追加してください
[mysqld_safe]
log_error=/var/log/mysql/mysql_error.log
[mysqld]
log_error=/var/log/mysql/mysql_error.log
一般的なクエリログを有効にするには、以下を追加してください
general_log_file = /var/log/mysql/mysql.log
general_log = 1
スロークエリログを有効にするには、次の行を追加してください
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes
step3:ファイルを保存し、以下のコマンドを使用してmysqlを再起動します。
service mysql restart
実行時にログを有効にするには、mysqlクライアントにログインし(mysql -u root -p)、次のようにします。
SET GLOBAL general_log = 'ON';
SET GLOBAL slow_query_log = 'ON';
最後にここで言及したいのは、ブログからこれを読むことです。ありがとう。わたしにはできる。
ブログにアクセスするには、 ここ をクリックしてください。
Mysqlでクエリロギングを有効にする必要があります。
1.edit /etc/my.cnf
[mysqld] log =/tmp/mysql.log
2.コンピュータまたはmysqldサービスを再起動します。
service mysqld restart
3. phpmyadmin/mysql/mysqlコンソールを使用してクエリを実行するアプリケーションを開きます。
4.cat /tmp/mysql.log(クエリが表示されるはずです)
MySQLログは以下のようなグローバル変数によって決定されます。
log_error
エラーメッセージログ用。general_log_file
一般的なクエリログファイルの場合(general_log
によって有効にされている場合)。slow_query_log_file
スロークエリログファイルの場合(slow_query_log
で有効にした場合);設定とその場所を確認するには、次のシェルコマンドを実行します。
mysql -se "SHOW VARIABLES" | grep -e log_error -e general_log -e slow_query_log
エラーログの値を表示するには、端末で次のコマンドを実行します。
mysql -e "SELECT @@GLOBAL.log_error"
エラーログファイルの内容をリアルタイムで読み取るには、次のコマンドを実行します。
Sudo tail -f $(mysql -Nse "SELECT @@GLOBAL.log_error")
注:ヒット Control - C 終わったら
一般ログが有効になったら、試してください。
Sudo tail -f $(mysql -Nse "SELECT CONCAT(@@datadir, @@general_log_file)")
パスワードアクセスでmysql
を使用するには、-p
または-pMYPASS
パラメータを追加します。それを覚えておくために、あなたはあなたの~/.my.cnf
でそれを設定することができます。
[client]
user=root
password=root
だからそれは次回のために覚えているでしょう。
私の(LAMPをインストールした)/etc/mysql/my.cnfファイルの中で、[mysqld]セクションの次のコメント行を見つけました。
general_log_file = /var/log/mysql/mysql.log
general_log = 1
私は端末を使ってスーパーユーザーとしてこのファイルを開かなければなりませんでした:
Sudo geany /etc/mysql/my.cnf
(私はgeditやVIの代わりにGeanyを使うことを好みます、それは問題ではありません)
コメントを外してファイルを保存してからmysqlを再度追加します。
Sudo service mysql restart
いくつかのクエリを実行し、上記のファイル(/var/log/mysql/mysql.log)を開くと、ログはそこにありました:)
MySQLのリファレンスマニュアルより:
デフォルトでは、すべてのログファイルはデータディレクトリに作成されます。
/var/lib/mysql
フォルダを確認してください。
loyola の答えを補足するために、MySQL 5.1ではlog_slow_queries
は非推奨となり、slow-query-log
に置き換えられました
log_slow_queries
を使用すると、service mysql restart
またはservice mysql start
が失敗します。
Shell> mysqladmin flush-logs
Shell> mv Host_name.err-old backup-directory
上記の回答に加えて、confファイルを手動で編集する代わりに、オプションをログに記録するためにmysqldプロセスにコマンドラインパラメータを渡すことができます。たとえば、一般的なロギングを有効にしてファイルを指定するには、次のようにします。
mysqld --general-log --general-log-file=/var/log/mysql.general.log
上記の他の答えを確認すると、mysqld --help --verbose
はconfファイルからの値を与えます(そのため、コマンドラインオプションgeneral-logで実行するのはFALSEです)。 mysql -se "SHOW VARIABLES" | grep -e log_error -e general_log
は次のようになります。
general_log ON
general_log_file /var/log/mysql.general.log
エラーログには、もう少しコンパクトな構文を使用してください。
mysqld --general-log --general-log-file=/var/log/mysql.general.log --log-error=/var/log/mysql.error.log