OS Xのmysqlログはどこにありますか?


74

/ var / logと/ usr / local / mysqlをチェックしましたが、ログが見つからないようです。PHP関数とのデータベース接続の確立エラーをトラブルシューティングしようとしています。

回答:


95

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は、オープンソースに関するすべてのことに対する私のコミットメントによって無料で提供されました。


2
mysqladmin variables現在の値を取得の代わりに、直接使用するための優先コマンドであるmysqld
ジョン・カミングス

@JohnCummings、ソース?
パセリエ

今日、私はコメントなしで反対票を得ました。私はすべての答えを維持します。10歳のものでも。あなたは投票を下して誰も助けていない。コメントを残す!
ブルーノブロノスキー

@ jm3気をつけて?MacOSにアクセスできなくなりました。
ブルーノブロノスキー

12

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)")

10

この情報を見つける別の方法は、を使用することlsofです。

  1. アクティビティモニターを使用してのPIDを検索するmysqlか、を使用ps -ef | grep mysqldして検索します。

  2. sudo lsof -p PID_OF_MYSQLD MySQLが開いているファイルを確認します。


6

これを見つけるのにしばらく時間がかかりました...この場所を試してください: '

sudo vi /usr/local/mysql/data/YOUR-USERNAME.local.err

3
私がいた/usr/local/var/mysql/<USERNAME>.local.err
jonnysamps

3

デフォルトでは、すべてのログファイルはmysqldデータディレクトリに作成されます。

ソース:MySQLドキュメント

mysqlbinlog/ usr / local / mysql / data /のバイナリログファイルを読み取るために使用できます(私のインストールでは、すべてがバイナリではありませんでした)。一部のエラーは単にstderrに送られるため/var/log/system.log、同様に確認することもできます。


mysqlディレクトリにデータディレクトリがありません。/ usr / local / mysql /ディレクトリ全体を見て、ログが見つかりません。mysql構成を表示する方法はありませんか?phpinfo()のように
トニー

MySQLをどのようにインストールしましたか?Mac OS X Server、MacPorts、または公式のMySQLパッケージでプリインストールされたMySQLですか?
Chealion

0

そのログを保持するフォルダーには、次のものを使用しないとアクセスできない場合がありますsudo

sudo ls -l "/usr/local/mysql-5.0.51a-osx10.5-x86"
[..]
drwxr-x---   4 _mysql  wheel    136 Jul 10 23:06 data

大きなログファイルを見つけて、Time Machineを使用している場合は、Time Machineの機能を読んでくださいサーバー障害。


/ usr / local / mysqlにデータディレクトリがない
トニー

0

デフォルトでは、すべてのログファイルはmysqldデータディレクトリに作成されます。残念ながら、多くの人はログファイル(およびプログラム)を通常の場所に配置しません。私もその一人です!

Navicat for MySQLを試すまで、MySQLを使用してこのルーチンを自分で実行しました。後でNavicat Premiumにアップグレードしました。両方とも、1つの包括的なリストにすべてのサーバー変数を含むタブを含む監視ツールがあります。以下に、log_errorサーバー変数のスクリーンショットを示します。

Navicatサーバー監視ツールのlog_errorサーバー変数

Navicatサーバー監視ツールのlog_errorサーバー変数

リスト内で変数を設定することもできます。

乾杯!


-2

/ライブラリ/Logs/MySQL.log


私はそこに他のログが表示されますが、mysqlは表示されません
トニー

これはMac OS X Serverのどのバージョンですか?一般に、Mac OS X Serverの下の/ var / log /および/ Library / Logs /を確認します。この問題に特有の/var/log/system.logを見ると、/ var / mysql(.errログファイルなど)に何か有用なものがあるかもしれませんが、私(Leopard Serverのデフォルト設定)には前述の/ライブラリ/Logs/MySQL.log。ソケットまたはネットワーク接続経由​​で接続しようとしていますか?後者の場合、「サーバ管理」で「ネットワーク接続を有効にする」(Leopardでは、Tigerでは/ Applications / Utilitiesの別のアプリでした)か?
モーガン2009
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.