Почему /etc/mysql/my.cnf ПУСТОЙ?

16

Я пытаюсь отредактировать my.cnfфайл, чтобы разрешить удаленный доступ и, в конечном счете, с помощью программного обеспечения с моего Windows Server для настройки запланированного резервного копирования для MySQL Server.

Я следовал этим инструкциям . Тем не менее, /etc/mysql/my.cnfфайл на моем Ubuntu имеет только:

#
# 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/

Он не содержит никаких настроек, которые я могу редактировать. Почему это так?

Mercedez
источник
Все это означает, что файл находится в состоянии по умолчанию, в оригинальном виде с момента установки
Сергей Колодяжный

Ответы:

29

Во-первых, как правильно указывает AB, файл не пустой. У него есть две довольно важные директивы, а именно

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

Эти строки говорят, что дополнительные файлы конфигурации (в данном случае .cnf) можно найти в перечисленных каталогах:

/etc/mysql/conf.d/
/etc/mysql/mysql.conf.d/

Последний из двух каталогов должен содержать mysqld.cnf . Другими словами, соответствующий файл конфигурации должен быть:

/etc/mysql/mysql.conf.d/mysqld.cnf
Techedemic
источник
2
что-то не так или иначе. когда я редактирую наполовину пустой файл my.conf и, например, устанавливаю wait_timeout = 600, служба mysql больше не может быть запущена ..
phil294
Это точный ответ на вопрос.
Ласита Бенарагама
Хотел бы я найти его на 6 часов раньше!
Неофит
@Blauhirn То же самое здесь, когда я здесь указываю пароль. Без этого служба запускается, но, очевидно, в [mysqld] не все анализируется правильно, как wait_timout и пароль.
Мин Hundje
5

Файл не пустой. Он содержит комментарии - строки с ведущими #- и операторы импорта - строки с ведущими !. Оператор импорта означает, что будут использоваться и другие конфигурации.

Редактирование файла конфигурации также означает добавление новых строк конфигурации.

AB
источник
4

Мой файл такой же. Вам нужно добавить правильную группу над командой, которую вы пытаетесь ввести, иначе служба не запустится.

Чтобы добавить bind-addressвам нужно будет добавить [mysqld]над ним.

Если вам необходимо проверить , какие группы для других команд, есть пример my.cnfфайл здесь .

Если вы хотите включить удаленные подключения со всех интерфейсов (например, 0.0.0.0), ваш файл будет выглядеть примерно так, как показано ниже, однако убедитесь, что вы правильно настроили брандмауэр.

#
# 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/

[mysqld]    
bind-address = 0.0.0.0

Обратите внимание на группу [mysqld].

обкрадывать
источник
Это такая боль в **. Уже почти два дня пытаюсь заставить работать удаленные соединения. Удаленные подключения должны быть включены из коробки.
Марк Алекса
Зачем вам выставлять каждый сервер базы данных в интернет из коробки? Разве не достаточно небезопасных систем?
А. Щербаум
3

В этом случае этот файл не является основным, в который включена вся информация о bind-адресе, binlogs и т. Д. Но есть еще один файл, куда они входят. Попробуй это:

nano /etc/mysql/mysql.conf.d/mysqld.cnf

Это помогло мне, и это должно помочь вам.

Гуу Ми
источник
1

В Ubuntu 16.04 / MySQL 5.7 по крайней мере my.cnf фактически пуст, потому что это символическая ссылка на другой файл, который символически ссылается на mysql.cnf в /etc/mysql/mysql.conf.d, упомянутом в других ответах. Внесите свои изменения здесь, как указано выше.

Gavin
источник