Ton*_*ony 79 mysql log-files mac-osx
我检查了 /var/log 和 /usr/local/mysql ,但似乎找不到日志。我正在尝试解决使用 php 函数建立数据库连接的错误。
Bru*_*sky 100
正如 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
Run Code Online (Sandbox Code Playgroud)
你能在这里发布该命令的结果吗?我的看起来像这样:
_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
Run Code Online (Sandbox Code Playgroud)
从中你可以看到我的 datadir 是/opt/local/var/db/mysql(因为我是通过 MacPorts 安装的)。让我们更进一步地学习这个课程......
从第一行你可以看到 my daemon is /opt/local/libexec/mysqld. 该mysqld可被称为--verbose --help后面将如果你启动mysqld的,而不是只检查帮助输出使用的值来获得的所有命令行选项的列表(在这里是最重要的/有价值的部分!)。这些值是编译时配置、my.cnf文件和任何命令行选项的结果。我可以利用这个功能找出我的日志文件的确切位置,如下所示:
/opt/local/libexec/mysqld --verbose --help|grep '^log'
Run Code Online (Sandbox Code Playgroud)
我的看起来像这样:
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
Run Code Online (Sandbox Code Playgroud)
瞧!世界上所有的建议都不会帮助我,因为我的日志文件保存在一个完全非标准的位置!我保留我的,/tmp/因为在我的笔记本电脑上,我不在乎(实际上我更喜欢)在重新启动时丢失所有日志。
让我们把它们放在一起,让你成为一个单行者:
$(ps auxww|sed -n '/sed -n/d;/mysqld /{s/.* \([^ ]*mysqld\) .*/\1/;p;}') --verbose --help|grep '^log'
Run Code Online (Sandbox Code Playgroud)
执行该命令,您将获得正在运行的 mysql 实例的所有日志的列表。
享受!
这个 Bash-Fu 是我对所有开源事物的承诺,免费为您带来的。
ken*_*orb 15
MySQL/MariaDB 日志有 3 种类型:
log_error 对于错误消息日志;general_log_file用于一般查询日志文件(如果由 启用general_log);slow_query_log_file对于慢查询日志文件(如果由 启用slow_query_log);通过此 shell 命令检查上述日志的设置和位置:
mysql -se "SHOW VARIABLES" | grep -e log_error -e general_log -e slow_query_log
Run Code Online (Sandbox Code Playgroud)
默认情况下,日志存储在您的数据目录中,因此请通过以下 shell 命令检查位置:
mysql -se "SELECT @@datadir"
Run Code Online (Sandbox Code Playgroud)
要查看错误日志,您可以运行:
sudo tail -f $(mysql -Nse "SELECT @@log_error")
Run Code Online (Sandbox Code Playgroud)
如果您启用了常规日志,要查看它,请运行:
sudo tail -f $(mysql -Nse "SELECT CONCAT(@@datadir, @@general_log_file)")
Run Code Online (Sandbox Code Playgroud)
tob*_*bym 11
查找此信息的另一种方法是使用lsof.
使用活动监视器查找 的 PID mysql,或使用ps -ef | grep mysqld查找它。
sudo lsof -p PID_OF_MYSQLD 并查看 MySQL 打开了哪些文件。
小智 6
我花了一段时间才找到这个......试试这个位置:'
sudo vi /usr/local/mysql/data/YOUR-USERNAME.local.err
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
116928 次 |
| 最近记录: |