Homebrew mysql 설치의 경우 my.cnf는 어디에 있습니까? 하나를 설치합니까?
Homebrew mysql 설치의 경우 my.cnf는 어디에 있습니까? 하나를 설치합니까?
답변:
기본적으로 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을 호출 할 때 읽을 다른 파일을 지정하는 옵션도 있습니다.
ls $(brew --prefix mysql)/*.cnf
mysql --help | grep cnf
실제로 줄을 찾기가 더 쉬웠습니다.
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
my.cnf 파일을 시스템 /etc
폴더에 추가해서는 안되므로 파일 을에 복사하도록 명령을 변경했습니다 /usr/local/etc
.
MySQL이 아닌 MariaDB를 사용하는 경우 다음을 사용하십시오.
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
/usr/local/
(이것이 기본이라고 생각합니다) 루트 권한이 필요하지 않은 my.conf
in을 배치 할 수도 있습니다 /usr/local/etc/
.
brew --prefix mariadb
. MariaDB 배포판에는 my-default.cnf
존재하지 않으므로 사용하십시오 my-small.cnf
. 이것을 시도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
mdfind -name my.cnf
에서 locate
명령 대신 사용할 수 있습니다
locate my.cnf
위해 직접 일했습니다. 나는 달리지 않았다sudo /usr/libexec/locate.updatedb
/usr/local/Cellar/mysql/8.0.16/.bottle/etc/my.cnf
그리고 /usr/local/etc/my.cnf
내가 무엇을 가지고 있었다
정말 도움이되지 못했습니다. /etc/my.cnf 파일의 설정을 덮어 쓸 수 없습니다. 그래서 John이 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을 다시 시작해야합니다 (설치된 homebrew mysql 버전 (예 : mysql 또는 mysql@5.7 사용) 사용).
brew services stop mysql
brew services start mysql
brew services stop mysql
하고 brew services start mysql
의 자리에 launchctl unload ...
선.
내 시스템에서 그것은
nano /usr/local/etc/my.cnf.default
템플릿으로
nano /usr/local/etc/my.cnf
일하는 것처럼.
이후 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 installed) MySQL 5.7의 경우 파일이에있는 것 같습니다 /usr/local/etc/my.cnf
.
나는 대답이 아니오라고 믿는다. ~ / .my.cnf 또는 / usr / local / etc에 설치하는 것이 선호되는 솔루션 인 것 같습니다.
홈 브루와 함께 설치된 MacOS (High Sierra)의 경우 MySQL.
mysql 환경에서 전역 변수를 늘리는 데 실패했습니다. 따라서이 경우 ~ / .my.cnf를 만드는 것이 가장 안전한 옵션입니다. [mysqld]로 변수를 추가하면 변경 사항이 포함됩니다 (참고 : [mysql]로 변경하면 변경 사항이 작동하지 않을 수 있음).
<~ / .my.cnf> [mysqld] connect_timeout = 43200 max_allowed_packet = 2048M net_buffer_length = 512M
mysql 서버를 다시 시작하십시오. 변수를 확인하십시오. 와이
sql> SELECT @@ max_allowed_packet; + ---------------------- + | @@ max_allowed_packet | + ---------------------- + | 1073741824 | + ---------------------- +
1 행 세트 (0.00 초)