Невозможно включить журналы в MySQL - ошибка: найден параметр без предшествующей группы в файле конфигурации

Я пытаюсь включить журналы на моем сервере MySQL, но безуспешно. Что я сделал :

1) Я создал файл журнала с правильными разрешениями:

touch /var/log/mysql/mysql.log   
chown mysql:mysql /var/log/mysql/mysql.log

2) Я добавил необходимые изменения в файл my.cnf:

general_log_file        = /var/log/mysql/mysql.log
general_log             = 1

Мой файл my.cnf выглядит следующим образом:

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

general_log_file        = /var/log/mysql/mysql.log
general_log             = 1

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

ошибка: найден параметр без предшествующей группы в файле конфигурации: /etc/mysql/my.cnf в строке: 23 Неустранимая ошибка при обработке значений по умолчанию. Программа прервана

Что это значит и как я могу это исправить?

Я использую Ubuntu 15.05 с MySQL 5.6.24-0ubuntu2.


person hg8    schedule 10.07.2015    source источник


Ответы (3)


Возможно, вам следует добавить [mysqld] в качестве первой строки вашего файла my.cnf.

person juanra    schedule 10.07.2015
comment
Это сработало и для меня, но, к сожалению, ответ не объясняет, почему. - person armadadrive; 14.01.2017
comment
@armadadrive Вы правы. Причина связана с сообщением об ошибке: найден параметр без предшествующей группы в файле конфигурации. Тег [mysqld] — это способ объявить группу (имя программы), для которой вы хотите установить параметры. - person juanra; 15.01.2017
comment
Это спасло меня. Но почему mysql не включил [mysqld] в файл my.cnf? - person Olakunle Awotunbo; 30.03.2017

Откройте my.conf, найдите [mysqld], под которым напишите переменную сервера, как указано ниже.

log = /var/log/mysqld.log
log-error = /var/log/mysqld.error.log

Убедитесь, что файл имеет разрешение 644 или выше. Найдите переменную журнала ошибок mysql, используя

показывать переменные типа '%log%';

Последняя версия mysql использует переменные log, log-error.

Спасибо, Амит.

person Amit Shah    schedule 10.07.2015
comment
он должен быть там, вероятно, этот URL-адрес поможет. rackspace.com/knowledge_center/article/ - person Amit Shah; 10.07.2015
comment
Его действительно не хватало, после добавления он теперь работает... Не понимаю, почему его не было здесь по умолчанию. - person hg8; 10.07.2015
comment
хорошо, я сомневаюсь, почему настоящий [mysqld] отсутствует в вашем my.cnf - person Amit Shah; 10.07.2015
comment
Я установил MySQL вчера, может быть, новую версию? - person hg8; 10.07.2015
comment
я использую последнюю версию, и у нее есть mysqld - person Amit Shah; 10.07.2015

В моем случае раздел [mysqld] был установлен правильно, но эта ошибка была вызвана недопустимым пробельным символом в начале файла. Это вызвало сбой при разборе файла. Символ туда каким-то образом вставился при копировании/закачке из windows в linux. Мне нужно было открыть файл с помощью средства просмотра файлов Linux, а затем удалить недопустимый символ, и тогда он работал нормально.

person lubosdz    schedule 05.09.2016