Почему /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/

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


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

Ответы:


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

2
что-то не так или иначе. когда я редактирую наполовину пустой файл my.conf и, например, устанавливаю wait_timeout = 600, служба mysql больше не может быть запущена ..
phil294

Это точный ответ на вопрос.
Ласита Бенарагама

Хотел бы я найти его на 6 часов раньше!
Неофит

@Blauhirn То же самое здесь, когда я здесь указываю пароль. Без этого служба запускается, но, очевидно, в [mysqld] не все анализируется правильно, как wait_timout и пароль.
Мин Hundje

5

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

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


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, упомянутом в других ответах. Внесите свои изменения здесь, как указано выше.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.