Для homebrew mysql устанавливает, где my.cnf? Он устанавливает один?
По умолчанию my.cnf отсутствует. Таким образом, MySQL запускается со всеми настройками по умолчанию. Если вы хотите создать свой собственный my.cnf, чтобы переопределить все значения по умолчанию, поместите его в /etc/my.cnf.
Кроме того, вы можете запустить mysql --help
и просмотреть его для перечисленных адресов.
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 в командной строке.
Домашняя страница 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
, поэтому Ive изменил эту команду, чтобы скопировать файл в /usr/local/etc
.
Если вы используете MariaDB, а не MySQL, используйте следующее:
cp $(brew --prefix mariadb)/support-files/my-small.cnf /usr/local/etc/my.cnf
sudo cp $(brew --prefix mysql)/support-files/my-default.cnf /etc/my.cnf
Один способ узнать:
sudo /usr/libexec/locate.updatedb
# wait a few minutes for it to finish
locate my.cnf
mdfind -name my.cnf
вместо команды locate
в OSX
Мне ничего не помогло - я не смог перезаписать настройки в файле /etc/my.cnf. Поэтому я искал, как предложил Джон https://stackoverflow.com/questions/7973927/for-homebrew-mysql-installs-wheres-my-cnf
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
brew services stop mysql
а brew services start mysql
вместо launchctl unload ...
В вашем типе оболочки 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
Я считаю, что ответ отрицательный. Установка одного в ~/.my.cnf или /usr/local/etc представляется предпочтительным решением.
Вы можете найти, где файл my.cnf
был предоставлен конкретным пакетом, например
brew list mysql # or: mariadb
В дополнение к проверке, читается ли этот файл, вы можете запустить:
sudo fs_usage | grep my.cnf
который покажет вам активность файловой системы в реальном времени, связанную с этим файлом.
в моей системе было
nano /usr/local/etc/my.cnf.default
в качестве шаблона и
nano /usr/local/etc/my.cnf
как работающий.