回答:
Chealionが述べたように、mysqlをインストールする方法はいくつかあります。それぞれがデータディレクトリやログを異なる場所に配置します。次のコマンドは、あなた(そして私たち)にどこを見ればよいかを示します。
ps auxww|grep [m]ysqld
# Putting brackets around the first char is a `grep`+`ps` trick
# to keep it from matching its own process.
# Note: For zsh compatibility put quotes around the grep regex
そのコマンドの結果をここに投稿できますか?私のものは次のようになります。
_mysql 101 0.0 0.3 112104 13268 ?? S 12:30AM 0:13.20 /opt/local/libexec/mysqld --basedir=/opt/local --datadir=/opt/local/var/db/mysql --user=mysql --pid-file=/opt/local/var/db/mysql/rbronosky-mbp.pid
root 76 0.0 0.0 600172 688 ?? S 12:30AM 0:00.02 /bin/sh /opt/local/lib/mysql/bin/mysqld_safe --datadir=/opt/local/var/db/mysql --pid-file=/opt/local/var/db/mysql/rbronosky-mbp.pid
これから、datadirが/opt/local/var/db/mysql
(MacPorts経由でインストールしたため)であることがわかります。このレッスンをもう少し進めましょう...
最初の行から、myデーモンがであることがわかります/opt/local/libexec/mysqld
。をmysqld
呼び出して--verbose --help
、すべてのコマンドラインオプションのリストを取得し(これが重要な/貴重な部分です!)、ヘルプ出力を確認するだけでなくmysqldを起動する場合に使用される値が続きます。値は、コンパイル時の構成、my.cnf
ファイル、およびコマンドラインオプションの結果です。この機能を活用して、次のようにログファイルの場所を正確に見つけることができます。
/opt/local/libexec/mysqld --verbose --help|grep '^log'
私のものは次のようになります。
log /tmp/mysql.log
log-bin /tmp/mysql-bin
log-bin-index (No default value)
log-bin-trust-function-creators FALSE
log-bin-trust-routine-creators FALSE
log-error /tmp/mysql.error.log
log-isam myisam.log
log-queries-not-using-indexes FALSE
log-short-format FALSE
log-slave-updates FALSE
log-slow-admin-statements FALSE
log-slow-queries (No default value)
log-tc tc.log
log-tc-size 24576
log-update (No default value)
log-warnings 1
LO and BEHOLD!私のログファイルは完全に非標準の場所に保管されているため、世界中のすべてのアドバイスは役に立ちませんでした!私は私の中に保つ/tmp/
ために私のラップトップ上で、私は再起動時に私のログのすべてを失うこと(実際に私が好む)気にしません。
それをすべてまとめて、あなたをワンライナーにしてみましょう:
$(ps auxww|sed -n '/sed -n/d;/mysqld /{s/.* \([^ ]*mysqld\) .*/\1/;p;}') --verbose --help|grep '^log'
その1つのコマンドを実行すると、mysqlの実行中のインスタンスのすべてのログのリストが取得されます。
楽しい!
このBash-Fuは、オープンソースに関するすべてのことに対する私のコミットメントによって無料で提供されました。
MySQL / MariaDBログには3つのタイプがあります。
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 -se "SELECT @@datadir"
エラーログを表示するには、次を実行します。
sudo tail -f $(mysql -Nse "SELECT @@log_error")
一般ログを有効にしている場合、表示するには、次を実行します。
sudo tail -f $(mysql -Nse "SELECT CONCAT(@@datadir, @@general_log_file)")
これを見つけるのにしばらく時間がかかりました...この場所を試してください: '
sudo vi /usr/local/mysql/data/YOUR-USERNAME.local.err
/usr/local/var/mysql/<USERNAME>.local.err
デフォルトでは、すべてのログファイルはmysqldデータディレクトリに作成されます。
ソース:MySQLドキュメント
mysqlbinlog
/ usr / local / mysql / data /のバイナリログファイルを読み取るために使用できます(私のインストールでは、すべてがバイナリではありませんでした)。一部のエラーは単にstderrに送られるため/var/log/system.log
、同様に確認することもできます。
デフォルトでは、すべてのログファイルはmysqldデータディレクトリに作成されます。残念ながら、多くの人はログファイル(およびプログラム)を通常の場所に配置しません。私もその一人です!
Navicat for MySQLを試すまで、MySQLを使用してこのルーチンを自分で実行しました。後でNavicat Premiumにアップグレードしました。両方とも、1つの包括的なリストにすべてのサーバー変数を含むタブを含む監視ツールがあります。以下に、log_errorサーバー変数のスクリーンショットを示します。
Navicatサーバー監視ツールのlog_errorサーバー変数
リスト内で変数を設定することもできます。
乾杯!
/ライブラリ/Logs/MySQL.log
mysqladmin variables
現在の値を取得の代わりに、直接使用するための優先コマンドであるmysqld