#1 楼
如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
从中您可以看到我的数据目录是
/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
LO AND BEHOLD!世界上的所有建议都不会对我有帮助,因为我的日志文件保存在完全不标准的位置!我将其保留在
/tmp/
中,因为我不在乎(实际上我更喜欢)在重新启动时丢失我的所有日志。让我们将它们放在一起,使您成为一体吧:
$(ps auxww|sed -n '/sed -n/d;/mysqld /{s/.* \([^ ]*mysqld\) .*//;p;}') --verbose --help|grep '^log'
执行该命令,您将获得正在运行的mysql实例的所有日志的列表。
享受吧!
我对开放源代码的所有承诺都免费为您带来了这个Bash-Fu。
#2 楼
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
默认情况下,日志存储在您的数据目录中,因此请通过以下shell命令检查位置:
mysql -se "SELECT @@datadir"
要查看错误日志,可以运行:
sudo tail -f $(mysql -Nse "SELECT @@log_error")
如果启用了常规日志,要查看它,请运行:
sudo tail -f $(mysql -Nse "SELECT CONCAT(@@datadir, @@general_log_file)")
#3 楼
查找此信息的另一种方法是使用lsof
。使用活动监视器来查找mysql
的PID,或使用ps -ef | grep mysqld
来查找它。 sudo lsof -p PID_OF_MYSQLD
并查看MySQL已打开哪些文件。评论
这是唯一对我有用的方法。 Mysql完全忽略了“ my.cnf”文件中的内容。
–布雷特·温劳布(Bret Weinraub)
20年12月8日,0:56
#4 楼
花了一段时间找到这个...尝试这个位置:'sudo vi /usr/local/mysql/data/YOUR-USERNAME.local.err
评论
我的位于/usr/local/var/mysql/
– jonnysamps
18年8月31日在17:53
#5 楼
默认情况下,所有日志文件均在mysqld数据目录中创建。
源:MySQL文档
您可以使用
mysqlbinlog
读取二进制文件/ usr / local / mysql / data /中的日志文件(在我的安装中,不是全部都是二进制文件)。有些错误只是直接指向stderr,因此您可能还需要检查/var/log/system.log
。评论
我在mysql目录中没有数据目录。我在/ usr / local / mysql /目录中查找了所有内容,但是找不到日志。有没有办法查看mysql的配置?像phpinfo()
–托尼
09年7月19日在20:40
您是如何安装MySQL的?预先安装了Mac OS X Server,MacPorts或官方MySQL软件包的MySQL?
–欺诈
09年7月19日在23:29
#6 楼
不使用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中没有数据目录
–托尼
09年7月19日在21:56
#7 楼
默认情况下,所有日志文件都在mysqld数据目录中创建。不幸的是,许多人没有将其日志文件(和程序)放在其典型位置。我就是其中之一!我自己在MySQL中进行了此例程,直到尝试了Navicat for MySQL。后来我升级到了Navicat Premium。两者都有一个监视工具,该工具包含一个选项卡,其中所有服务器变量都在一个综合列表中。这是带有log_error服务器变量的屏幕截图:
Navicat服务器监视工具中的log_error服务器变量
也可以在此处设置变量在列表中。
干杯!
#8 楼
/Library/Logs/MySQL.log评论
我在那里看到其他日志,但没有mysql
–托尼
09年7月19日在20:41
这是什么版本的Mac OS X Server?通常,您需要在Mac OS X Server下查找/ var / log /和/ Library / Logs /。对于这个问题,请更具体地观看/var/log/system.log,在/ var / mysql中可能有一些用途(如.err日志文件),但是我(在Leopard Server的默认配置上)也具有上述/库/日志/MySQL.log。您是要通过套接字还是网络连接进行连接?如果是后者,您是否在Server Admin(在Leopard上;在Tiger中是/ Applications / Utilities中的一个单独的应用程序)中“启用网络连接”?
–摩根
09年7月20日在16:37
评论
mysqladmin变量现在是获取当前值的首选命令,而不是直接使用mysqld
–约翰·卡明斯
17年5月2日在15:46
@JohnCummings,来源?
–起搏器
17年11月1日在18:00
今天,我没有任何评论而投了反对票。我保留所有答案。即使是10岁的孩子。您不是通过否决来帮助任何人。发表评论!
–布鲁诺·布鲁诺斯基(Bruno Bronosky)
18年6月29日在17:41
@ jm3关心详细吗?我不再有权访问MacOS。
–布鲁诺·布鲁诺斯基(Bruno Bronosky)
18/09/27在15:37