Mysql
我在 OS X 上的 mysql 日誌在哪裡?
我檢查了 /var/log 和 /usr/local/mysql ,但似乎找不到日誌。我正在嘗試解決使用 php 函式建立數據庫連接的錯誤。
正如 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 安裝的)。讓我們更進一步地學習這一課……從第一行你可以看到我的守護程序是
/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
瞧!世界上所有的建議都對我沒有幫助,因為我的日誌文件保存在一個完全非標準的位置!我保留我的,
/tmp/
因為在我的筆記型電腦上,我不在乎(實際上我更喜歡)在重新啟動時失去我的所有日誌。讓我們把它們放在一起,讓你成為一個單行者:
$(ps auxww|sed -n '/sed -n/d;/mysqld /{s/.* \([^ ]*mysqld\) .*/\1/;p;}') --verbose --help|grep '^log'
執行該命令,您將獲得正在執行的 mysql 實例的所有日誌列表。
享受!
這個 Bash-Fu 是我對所有開源事物的承諾免費帶給你的。