Ответы:
Как упоминал 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
чтобы получить список всех параметров командной строки (и здесь важной / ценная часть!) Следует значения , которые будут использоваться , если вы запускали туздЫ вместо того , чтобы просто проверить вывод справки. Значения являются результатом вашей конфигурации времени компиляции, 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 принес вам бесплатно благодаря моей приверженности всем вещам с открытым исходным кодом.
Существует 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)")
Мне понадобилось время, чтобы найти это ... попробуйте это место:
sudo vi /usr/local/mysql/data/YOUR-USERNAME.local.err
/usr/local/var/mysql/<USERNAME>.local.err
По умолчанию все файлы журнала создаются в каталоге данных mysqld.
Источник: MySQL Documentation
Вы можете использовать mysqlbinlog
для чтения двоичных файлов журнала в / usr / local / mysql / data / (в моей установке не все были двоичными). Некоторые ошибки просто направлены на stderr, так что вы можете проверить /var/log/system.log
это.
Папка с этим журналом может быть недоступна без использования 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? Ошибка сервера.
По умолчанию все файлы журнала создаются в каталоге данных mysqld. К сожалению, многие люди не размещают свои файлы журналов (и программы) в своих типичных местах. Я один из них!
Я сам прошел через эту процедуру с MySQL, пока не попробовал Navicat для MySQL . Позже я обновился до Navicat Premium . Оба имеют инструмент мониторинга, который содержит вкладку со всеми серверными переменными в одном полном списке. Вот скриншот с серверной переменной log_error:
переменная сервера log_error в инструменте мониторинга сервера Navicat
Вы также можете установить переменные прямо в списке.
Ура!
/Library/Logs/MySQL.log
mysqladmin variables
теперь предпочтительная команда для получения текущего значения вместо непосредственного использованияmysqld