Вопрос: Где мой журнал mysql на OS X?


Я проверил / var / log и / usr / local / mysql, и я не могу найти журнал. Я пытаюсь устранить ошибку, устанавливая соединение с базой данных с php-функцией.


62
2017-07-18 15:58


Источник




Ответы:


Как отметил 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/ потому что на моем ноутбуке меня не волнует (на самом деле, я предпочитаю) потерять все мои журналы при перезагрузке.

Давайте соединим все это и сделаем вас oneliner:

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

Выполните одну команду, и вы получите список всех журналов для вашего исполняемого экземпляра mysql.

Наслаждайтесь!

Этот Bash-Fu принес вам бесплатно мое обязательство ко всем вещам Open Source.


81
2017-07-20 17:06



mysqladmin variables теперь является предпочтительной командой для получения текущего значения вместо прямого использования mysqld - John Cummings
@JohnCummings, источник? - Pacerier
Сегодня я получил голосу без комментариев. Я поддерживаю все свои ответы. Даже те, кому 10 лет. Вы никому не помогаете, голосуя. Оставить комментарий! - Bruno Bronosky


Другой способ найти эту информацию - использовать lsof,

  1. Используйте Activity Monitor для поиска PID mysql, или использовать ps -ef | grep mysqld найти его.

  2. sudo lsof -p PID_OF_MYSQLD и посмотреть, какие файлы MySQL открыты.


9
2017-10-29 14:30





Существует 3 типа журналов MySQL / MariaDB:

  • log_error для журнала сообщений об ошибках;
  • general_log_file для общего файла журнала запросов (если он включен general_log);
  • slow_query_log_file для файла журнала медленных запросов (если включено slow_query_log);

Проверьте настройки и расположение вышеуказанных журналов с помощью этой команды оболочки:

mysql -se "SHOW VARIABLES" | grep -e log_error -e general_log -e slow_query_log

По умолчанию журналы хранятся в вашем каталоге данных, поэтому проверяйте местоположение этой командой оболочки:

mysql -se "SELECT @@datadir"

Чтобы просмотреть журнал ошибок, вы можете запустить:

sudo tail -f $(mysql -Nse "SELECT @@log_error")

Если у вас есть общий доступ к журналу, для его просмотра выполните:

sudo tail -f $(mysql -Nse "SELECT CONCAT(@@datadir, @@general_log_file)")

7
2018-06-09 15:09





Понадобилось некоторое время, чтобы найти это ... попробуйте это место: '

sudo vi /usr/local/mysql/data/YOUR-USERNAME.local.err

4
2017-07-25 15:32





По умолчанию все файлы журналов создаются в каталоге данных mysqld.

Источник: Документация MySQL

Вы можете использовать mysqlbinlog для чтения двоичных файлов журнала в / usr / local / mysql / data / (в моей установке не все были двоичными). Некоторые ошибки просто направлены на stderr, поэтому вы можете проверить /var/log/system.log также.


3
2017-07-18 16:10



У меня нет каталога данных в каталоге mysql. я просмотрел каталог / usr / local / mysql / и не могу найти журнал. нет способа просмотреть конфигурацию mysql? как phpinfo () - Tony
Как вы установили MySQL? Предварительно установленный MySQL с Mac OS X Server, MacPorts или официальный пакет MySQL? - Chealion


Папка, в которой находится этот журнал, может быть недоступна для вас, не используя 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, вы можете прочитать Что делает машина времени? при сбое сервера.


0
2017-07-18 16:59



У меня нет данных dir в / usr / local / mysql - Tony


/Library/Logs/MySQL.log


-1
2017-07-18 16:53



Я вижу другие журналы там, но не mysql - Tony
Какая версия Mac OS X Server это? В общем, вы захотите посмотреть в / var / log / & / Library / Logs / под Mac OS X Server. Более конкретно для этой проблемы, смотрите /var/log/system.log, может быть что-то полезное в / var / mysql (например, файлы журнала .err), но я (по умолчанию для Leopard Server) также имеет вышеупомянутый / Библиотека / Журналы / MySQL.log. Вы пытаетесь подключиться через сокет или сетевое соединение? Если последний, вы включили «Включить сетевые подключения» в «Администраторе сервера» (на Leopard; «В тигре» это было отдельное приложение в / Приложения / Утилиты)? - morgant