我的mysql在OS X上的登录位置在哪里?


74

我检查了/ var / log和/ usr / local / mysql,但似乎找不到该日志。我正在尝试解决使用php函数建立数据库连接的错误。

Answers:


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

从中可以看到我的数据目录是/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

瞧瞧!世界上的所有建议都不会对我有帮助,因为我的日志文件保存在完全不标准的位置!我留/tmp/在我的,因为在我的笔记本电脑上,我不在乎(实际上我更喜欢)在重新启动时释放所有日志。

让我们放在一起,使您成为一体:

$(ps auxww|sed -n '/sed -n/d;/mysqld /{s/.* \([^ ]*mysqld\) .*/\1/;p;}') --verbose --help|grep '^log'

执行该命令,您将获得正在运行的mysql实例的所有日志的列表。

请享用!

我对开放源代码的所有承诺都免费为您带来了这个Bash-Fu。


2
mysqladmin variables现在是获取当前值而不是直接使用的首选命令mysqld
John Cummings

@JohnCummings,来源?
Pacerier's

今天,我没有任何评论而投了反对票。我保留所有答案。即使是10岁的孩子。您不是通过否决来帮助任何人。发表评论!
布鲁诺·布鲁诺斯基

@ jm3关心详细吗?我不再可以访问MacOS。
布鲁诺·布罗诺斯基

12

MySQL / MariaDB日志有3种类型:

通过此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)")

10

查找此信息的另一种方法是使用lsof

  1. 使用活动监视器查找的PID mysql,或使用ps -ef | grep mysqld查找它的PID 。

  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中没有数据目录
Tony

0

默认情况下,所有日志文件都在mysqld数据目录中创建。不幸的是,许多人没有将其日志文件(和程序)放在其典型位置。我就是其中之一!

我自己使用MySQL进行了此例程,直到尝试了Navicat for MySQL。后来我升级到Navicat Premium。两者都有一个监视工具,该工具包含一个选项卡,其中所有服务器变量都在一个综合列表中。这是带有log_error服务器变量的屏幕截图:

Navicat服务器监视工具中的log_error服务器变量

Navicat服务器监视工具中的log_error服务器变量

您也可以在列表中在那里设置变量。

干杯!


-2

/图书馆/日志/MySQL.log


我在那看到其他日志,但是没有mysql
Tony

这是什么版本的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中的一个单独的应用程序)中“启用网络连接”?
摩根2009年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.