Для доморощенных установок mysql, где my.cnf? - PullRequest
278 голосов
/ 02 ноября 2011

Для доморощенных установок mysql, где my.cnf? Он устанавливает один?

Ответы [ 11 ]

266 голосов
/ 22 декабря 2011

Доморощенный mysql содержит примеры файлов конфигурации в папке с файлами поддержки установки.

ls $(brew --prefix mysql)/support-files/my-*

Если вам нужно изменить настройки по умолчанию, вы можете использовать один из них в качестве отправной точки.

cp $(brew --prefix mysql)/support-files/my-default.cnf /usr/local/etc/my.cnf

Как указывает @rednaw, домашняя версия MySQL, скорее всего, будет находиться в /usr/local, поэтому файл my.cnf не следует добавлять в системную папку /etc, поэтому я изменил команду для копирования файл в /usr/local/etc.

Если вы используете MariaDB вместо MySQL, используйте следующее:

cp $(brew --prefix mariadb)/support-files/my-small.cnf /usr/local/etc/my.cnf
247 голосов
/ 02 ноября 2011

my.cnf по умолчанию не существует.Таким образом, MySQL запускается со всеми настройками по умолчанию.Если вы хотите создать свой собственный my.cnf для переопределения любых значений по умолчанию, поместите его в /etc/my.cnf.

Кроме того, вы можете запустить mysql --help и просмотреть его в списке расположений conf.

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf 
The following groups are read: mysql client
The following options may be given as the first argument:
--print-defaults        Print the program argument list and exit.
--no-defaults           Don't read default options from any option file.
--defaults-file=#       Only read default options from the given file #.
--defaults-extra-file=# Read this file after the global files are read.

Как видите, есть также несколько вариантов обхода файлов conf или указания других файлов для чтения при вызове mysql в командной строке.

26 голосов
/ 02 ноября 2011

Один способ узнать:

sudo /usr/libexec/locate.updatedb
# wait a few minutes for it to finish
locate my.cnf
16 голосов
/ 17 октября 2014

Ничто действительно не помогло мне - я не мог перезаписать настройки в файле /etc/my.cnf.Поэтому я искал, как предложил Джон https://stackoverflow.com/a/7974114/717251

sudo /usr/libexec/locate.updatedb
# wait a few minutes for it to finish
locate my.cnf

Он обнаружил еще один my.cnf в

/usr/local/Cellar/mysql/5.6.21/my.cnf

, и изменение этого файла помогло мне!Не забудьте перезапустить агент запуска:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

Обновление:

Если у вас достаточно недавняя установка homebrew, вы должны использовать команды brew services для перезапуска mysql (используйте установленную версию mysql для homebrew, т.е. mysql или mysql@5.7):

brew services stop mysql
brew services start mysql
10 голосов
/ 10 августа 2017

в моей системе это было

nano /usr/local/etc/my.cnf.default 

как шаблон и

nano /usr/local/etc/my.cnf

как работает.

10 голосов
/ 19 мая 2014

На вашем типе оболочки my_print_defaults --help

В нижней части результата вы должны увидеть файл, из которого сервер считывает конфигурации. Он печатает что-то вроде этого:

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
8 голосов
/ 08 сентября 2018

Поскольку mysql --help показывает список файлов, я считаю полезным направить результат в ls, чтобы увидеть, какие из них существуют:

$ mysql --help | grep /my.cnf | xargs ls
ls: /etc/my.cnf: No such file or directory
ls: /etc/mysql/my.cnf: No such file or directory
ls: ~/.my.cnf: No such file or directory
/usr/local/etc/my.cnf

Для моего (установленного Homebrew) MySQL 5.7, похоже, файлы находятся на /usr/local/etc/my.cnf.

4 голосов
/ 09 июня 2016

Вы можете найти, где файл my.cnf был предоставлен конкретным пакетом, например,

brew list mysql # or: mariadb

Кроме того, чтобы проверить, читается ли этот файл, вы можете запустить:

sudo fs_usage | grep my.cnf

, который покажет вам активность файловой системы в реальном времени, связанную с этим файлом.

4 голосов
/ 02 ноября 2011

Я верю, что ответ - нет. Установка одного из них в ~ / .my.cnf или / usr / local / etc кажется предпочтительным решением.

1 голос
/ 09 июля 2018

В случае с Homebrew mysql также будет искать my.cnf в своем каталоге Cellar, например:

/usr/local/Cellar/mysql/5.7.21/my.cnf

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

Перезапустите mysql после изменения:

brew services restart mysql
...