Для homebrew mysql устанавливает, где мой.cnf?

для установки mysql homebrew, где мой.cnf? Это установить?

11 ответов


нет мой.КНФ по умолчанию. Таким образом, MySQL начинается со всех настроек по умолчанию. Если вы хотите создать свой собственный мой.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 в командной строке.


homebrew mysql содержит примеры файлов конфигурации в папке support-files установки.

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 поэтому мой.cnf файл не должен быть добавлен в систему , поэтому я изменил команду, чтобы скопировать файл в /usr/local/etc.

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

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

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

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

мне ничего не помогло-я не мог перезаписать настройки в a/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

он нашел еще один мой.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

на вашем типе оболочки 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

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


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

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

как шаблон и

nano /usr/local/etc/my.cnf

в качестве рабочего.


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

brew list mysql # or: mariadb

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

sudo fs_usage | grep my.cnf

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


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

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

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

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

brew services restart mysql

С 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.


для MacOS (High Sierra), MySQL, который был установлен с домашним пивом.

увеличение глобальных переменных из среды mysql не было успешным. Поэтому в этом случае создание~/.мой.cnf-самый безопасный вариант. Добавление переменных с [mysqld] будет включать изменения (Примечание: Если вы измените с [mysql] , изменение может не работать).

[mysqld] connect_timeout = 43200 max_allowed_packet = 2048M net_buffer_length = 512МБ

перезапустите сервер mysql. и проверьте переменные. y

sql> выберите @@max_allowed_packet; +----------------------+ | @@max_allowed_packet | +----------------------+ | 1073741824 | +----------------------+

1 строка в наборе (0.00 сек)