AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 42531
Accepted
Tony
Tony
Asked: 2009-07-19 07:58:36 +0800 CST2009-07-19 07:58:36 +0800 CST 2009-07-19 07:58:36 +0800 CST

我在 OS X 上的 mysql 日志在哪里?

  • 772

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

mysql mac-osx log-files
  • 11 11 个回答
  • 124062 Views

11 个回答

  • Voted
  1. Best Answer
    Bruno Bronosky
    2009-07-21T09:06:48+08:002009-07-21T09:06:48+08:00

    正如 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 是我对所有开源事物的承诺免费带给你的。

    • 100
  2. kenorb
    2016-06-10T07:09:27+08:002016-06-10T07:09:27+08:00

    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)")
    
    • 15
  3. tobym
    2012-10-30T06:30:16+08:002012-10-30T06:30:16+08:00

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

    1. 使用 Activity Monitor 查找 的 PID mysql,或使用ps -ef | grep mysqld查找。

    2. sudo lsof -p PID_OF_MYSQLD并查看 MySQL 打开了哪些文件。

    • 11
  4. Mark Shust at M.academy
    2012-07-26T07:32:43+08:002012-07-26T07:32:43+08:00

    我花了一段时间才找到这个......试试这个位置:'

    sudo vi /usr/local/mysql/data/YOUR-USERNAME.local.err
    
    • 7
  5. Chealion
    2009-07-19T08:10:59+08:002009-07-19T08:10:59+08:00

    默认情况下,所有日志文件都在 mysqld 数据目录中创建。

    资料来源:MySQL 文档

    您可以使用mysqlbinlog读取 /usr/local/mysql/data/ 中的二进制日志文件(在我的安装中,并非所有都是二进制文件)。有些错误只是直接指向 stderr,因此您可能也想检查一下/var/log/system.log。

    • 4
  6. Arjan
    2009-07-19T08:59:46+08:002009-07-19T08:59:46+08:00

    如果不使用以下命令,您可能无法访问保存该日志的文件夹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 是做什么的?关于服务器故障。

    • 0
  7. Rob Gravelle
    2018-11-18T14:40:51+08:002018-11-18T14:40:51+08:00

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

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

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

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

    您还可以在列表中设置变量。

    干杯!

    • 0
  8. NSDB
    2022-03-21T21:45:41+08:002022-03-21T21:45:41+08:00
    1. 打开系统偏好设置

    在此处输入图像描述

    1. 选择 MySQL -> 配置

    您的错误日志路径应该是可见的:

    在此处输入图像描述

    • 0
  9. Arda Basoglu
    2022-06-05T14:23:41+08:002022-06-05T14:23:41+08:00

    尝试通过以下命令找到您的 mysql(或 mariadb)日志文件夹:

    locate local.err
    
    • 0
  10. xgretsch
    2022-07-19T06:18:22+08:002022-07-19T06:18:22+08:00

    Bruno 批准的答案在 MacOS Monterey 上对我不起作用,无论如何,如果您的问题是没有 mysqld 进程,因为它在启动期间失败,它对您没有帮助。

    但是,在这里关注其他一些使我能够找到错误日志:

    $ ls -l /usr/local/mysql
    lrwxr-xr-x  1 root  wheel  26 18 Jul 13:39 /usr/local/mysql -> mysql-8.0.29-macos12-arm64
    $ sudo ls -l /usr/local/mysql-8.0.29-macos12-arm64/data|grep err
    -rw-r-----    1 _mysql  _mysql        3308 18 Jul 15:01 mysqld.local.err
    
    • 0

相关问题

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • 如何选择 MySQL 数据库引擎

  • 多操作系统环境的首选电子邮件客户端

  • 现在从 mac os 在 NTFS 分区上写入是否安全?

  • 最佳混合环境(OS X + Windows)备份?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve