Відповіді:
Як згадував 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 безкоштовно приніс вам вашу прихильність до всіх речей з відкритим кодом.
Існує 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
Ви можете використовувати 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 Server
Ви також можете встановити змінні прямо там у списку.
Ура!
/Library/Logs/MySQL.log
mysqladmin variables
тепер краща команда для отримання поточного значення замість прямого використанняmysqld