2015-11-11 5 views
0

Вытягивание моих волос и, похоже, не может найти ответ на мою проблему. Я запускаю MYSQL 5.6.26 на OSX Yosemite. Я просто пытаюсь включить регистрацию моих запросов.Включение ведения журнала в my.cnf на OSX не работает

Я находится файл my.cnf в/USR/местные/MySQL и добавил две линии под [MySQL] (я на самом деле должен был напечатать их, а не просто раскомментировать существующие линии):

general_log=1 
general_log_file=/usr/local/mysql/mysql.log 

Выполнение lŠ -l на my.cnf выходов:

-rw-r--r-- 1 root wheel 1002 Nov 10 19:01 my.cnf 

который казался странным. Почему бы не _mysql быть владельцем?

Я попытался сначала сделать изменения выше и остановить и перезапустить сервер sql через Системные настройки, и это не сработает.

Я попытался изменить право собственности на my.cnf на _mysql, создав mysql.log в каталоге/usr/local/mysql и сделав владельца _mysql также безрезультатным.

Немного сумасшедший, поскольку я чувствую, что этого не должно быть так сложно. Как включить ведение журнала для mysql?

+0

посмотреть, есть ли у меня my.cnf под/var/mysql –

+0

Я не вижу каталог mysql в/var – mathfish

+0

Я вижу что у меня есть два, но, возможно, ни один из них не используется. Загрузите mysqlworkbench. В разделе «Администрирование/настройка» вы можете установить параметры ведения журнала. –

ответ

0

После взятия советов Джона Elemans я использовал MySQL Workbench, открыл локальный экземпляр, а на левой стороне находится область под названием «Instance», который имеет ссылку на «Журналы сервера». Журнал ошибок показывал, что файл журнала, указанный мной в my.cnf, не существует. Поэтому я создал файл журнала mysql.log в/usr/local/mysql и перезапустил сервер через WorkBench. Посмотрел журнал ошибок и вышла ошибка: mysql не смог открыть файл. Проверенные разрешения и _mysql не были владельцем. Поэтому я сделал chown от root до _mysql для файла журнала, снова перезапустил сервер, и voila «... он работал. Спасибо всем.

Не уверен, как принять ответ Джона как правильный, поэтому я просто выберу этот вариант, поскольку он отвечает на вопрос другим.

0

По умолчанию никакой конфигурационный файл не используется в OSX со стандартной установкой. Если вы хотите, чтобы сервер забирал один, он автоматически помещал его в/etc (т. Е. /etc/my.cnf), который действительно попадает в /private/etc/my.cnf, но это прозрачно.

Другой вариант, чтобы указать файл опций (с помощью параметра --defaults-файл) при запуске сервера:

Майкс-MacBook-Pro: Майк и т.д. $ пс Окс | grep mysql

Mike 2055 0,0 0,1 3235892 7268 ?? S 2Nov15
1: 41.22 /Users/Mike/sandboxes/5.7.5/bin/mysqld --defaults-file =/Пользователи/Mike/sandboxes/msb_5_7_5/my.sandbox.cnf --basedir =/Пользователи/Майк /sandboxes/5.7.5 --datadir =/Пользователи/Mike/sandboxes/msb_5_7_5/data --plugin-dir =/Пользователи/Mike/sandboxes/5.7.5/lib/plugin --user = Mike --log-error =/Пользователи/Mike/sandboxes/msb_5_7_5/data/msandbox.err --pid-file =/Пользователи/Mike/sandboxes/msb_5_7_5/data/mysql_sandbox5705.pid --socket =/var/folders/fv/13zbdzw17cdczn_rbnt5m_140000gn/T//mysql_sandbox5705.sock --port = 5705

+0

Я скопировал my.cnf в/usr/local/mysql в/etc и перезапустил mysql, но я не видел файл mysql.log, заполненный в каталоге/usr/local/mysql. Разрешение для my.cnf в/etc -r-r-r-- 1 корень колеса Это проблема? – mathfish

+0

Может быть, да. Как начинается сервер (какая учетная запись пользователя)? Попробуйте указать расположение файлов ошибок (например, в/tmp, домашний каталог и т. Д.). Также попробуйте разные настройки порта и подключитесь к терминалу, чтобы убедиться, что сервер взял ваш файл my.cnf на самом деле (или указать его явно при запуске сервера). –

2

Я столкнулся с этим сообщением при попытке настроить ведение журнала на mySQL 5.7 Community Edition. Эта версия поставляется с демоном запуска /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist, который заменяет файл my.cnf для новых установок.Вы можете добавить в качестве аргументов запуска в файл Plist, чтобы включить ведение журнала для:

--log-output, --general_log, slow_query_log, например:

<key>ProgramArguments</key> 
    <array> 
     <string>/usr/local/mysql/bin/mysqld</string> 
     <string>--user=_mysql</string> 
     <string>--basedir=/usr/local/mysql</string> 
     <string>--datadir=/usr/local/mysql/data</string> 
     <string>--plugin-dir=/usr/local/mysql/lib/plugin</string> 
     <string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string> 
     <string>--log-output=FILE</string> 
     <string>--general_log=/var/log/mysql/mysql.log</string> 
     <string>--log-error=/var/log/mysql/mysql.err.log</string> 
    </array> 

Более подробную информацию можно найти по адресу:

https://dev.mysql.com/doc/refman/5.7/en/osx-installation-launchd.html https://dev.mysql.com/doc/refman/5.7/en/log-destinations.html

+0

- параметр general_log ожидает логическое значение, а не путь к файлу журнала. Поэтому вместо этого используйте --general_log =. По умолчанию MySQL будет генерировать файл hostname.log в/usr/local/mysql/data /. – Juanan