MySQL не может распознать переменную в опции файла

2040
petwho

Я использую MySQL 5.6 на Mac OS X 10.8 и пытаюсь настроить mysql для записи genreral_log в файл. Тем не менее, он всегда выдает ошибку при запуске.

Вот как .my.cnfвыглядит файл (находится в моем домашнем каталоге):

[mysqld] general_log=/var/tmp/mysql/mysqld.log log_error = /var/tmp/mysql/mysqld.error.log  [mysql] log_error = /var/tmp/mysql/mysqld.error.log #general_log_file = /var/tmp/mysql/mysqld.log #auto-rehash 

Всякий раз, когда я запускаю клиент mysql на своем терминале, он выдает ошибку, подобную этой:

mysql: unknown variable 'log_error=/var/tmp/mysql/mysqld.error.log' 

И независимо от того, изменил ли я это на log-error, я все равно получил эту ошибку. Если я закомментирую строку log_error в сеансе [mysql], она будет работать нормально.

Кроме того, когда я начинаю mysqld_safe/usr/local/mysql/bin), он просто распознает log_errorпеременную, но не может распознать general_log. Однако, в отличие mysql, mysqld_safeне дал мне никакой ошибки.

Не могли бы вы помочь мне с этим волосатым жучком?

1

2 ответа на вопрос

2
RolandoMySQLDBA

The option log-error is a server option (mysqld).

It is recognized in /etc/my.cnf under the [mysqld] group.

That option does not exist for the mysql client program and would not be understood under the [mysql] group header.

Click Here to see all the options for the mysql client program.

The reason log-error works under the [mysqld_safe] group header? Any option mysqld_safe does not understand gets passed to [mysqld].

The mysql client program cannot reroute the destination file of log-error. You must change it in my.cnf and restart. It will have no effect on [mysqld] group header in .my.cnf because log-error is not a dynamic variable.

0
Ignacio Vazquez-Abrams

The mysql client tool does not recognize the log_error option, and you should not attempt to use it.