Homebrew mysql 설치의 경우 my.cnf는 어디에 있습니까?


293

Homebrew mysql 설치의 경우 my.cnf는 어디에 있습니까? 하나를 설치합니까?

답변:


263

기본적으로 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을 호출 할 때 읽을 다른 파일을 지정하는 옵션도 있습니다.


49
더 이상 그렇지 않은 것 같습니다. /usr/local/Cellar/mysql/5.6.15/에 my.cnf 파일이 있습니다 (또는 설치 한 버전)
William Turrell

6
@williamt "mysql --help"는 그 파일이 사용중인 것으로 표시하지 않습니다. 설치 파일과 함께 제공되는 기본값 일뿐입니다.
Vinicius Pinto

2
나는 5.6.26에 있는데 거기에 표시되지 않습니다.
Adam Grant

3
5.6.26에서 다음을 실행하여 롤 카트 할 수 있습니다. ls $(brew --prefix mysql)/*.cnf
danielgpm

23
mysql --help | grep cnf실제로 줄을 찾기가 더 쉬웠습니다.
vinyll

267

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/localmy.cnf 파일을 시스템 /etc폴더에 추가해서는 안되므로 파일 을에 복사하도록 명령을 변경했습니다 /usr/local/etc.

MySQL이 아닌 MariaDB를 사용하는 경우 다음을 사용하십시오.

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

4
sudo cp $(brew --prefix mysql)/support-files/my-default.cnf /etc/my.cnf
Matt Clegg

7
Homebrew가 MySQL을 설치했다면 /usr/local/(이것이 기본이라고 생각합니다) 루트 권한이 필요하지 않은 my.confin을 배치 할 수도 있습니다 /usr/local/etc/.
gitaarik

1
brew --prefix mysql은 올바른 경로를 제공하지 않습니다. 나에게 '/usr/local/Cellar/mysql/5.7.16'을 표시하지만 실제로 mariadb는 '/ usr / local / opt / mariadb /'에 설치됩니다.
zhaozhi

@zhaozhi 사용 brew --prefix mariadb. MariaDB 배포판에는 my-default.cnf존재하지 않으므로 사용하십시오 my-small.cnf. 이것을 시도cp $(brew --prefix mariadb)/support-files/my-small.cnf /usr/local/etc/my.cnf
ewalshe

이것은 정답이어야합니다. 첫 번째는 잘못되었습니다. 질문은 사제에 관한 것이었다.
BugHunterUK

30

알아내는 한 가지 방법 :

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

4
멋진 대답, locate.updatedb에 대해 배웠습니다. 그러나 기본적으로 설정 파일이 없습니다. 아래 답변을 참조하십시오
glebm

15
OSX mdfind -name my.cnf에서 locate명령 대신 사용할 수 있습니다
JacopKane

나를 locate my.cnf위해 직접 일했습니다. 나는 달리지 않았다sudo /usr/libexec/locate.updatedb
Andru

1
/usr/local/Cellar/mysql/8.0.16/.bottle/etc/my.cnf그리고 /usr/local/etc/my.cnf 내가 무엇을 가지고 있었다
빈센트 탕

18

정말 도움이되지 못했습니다. /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 ...선.
mhulse

1
그것은 사실이 아닙니다. 그러나이 답변을 작성할 당시에는이 사제 명령을 아직 사용할 수 없었습니다. 답변을 업데이트하겠습니다
naabster

17

내 시스템에서 그것은

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

템플릿으로

nano /usr/local/etc/my.cnf

일하는 것처럼.


13

이후 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.


10

쉘 타입 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

5

my.cnf특정 패키지가 파일을 제공 한 위치를 찾을 수 있습니다 ( 예 :

brew list mysql # or: mariadb

해당 파일을 읽었는지 확인하는 것 외에도 다음을 실행할 수 있습니다.

sudo fs_usage | grep my.cnf

해당 파일과 관련된 파일 시스템 활동을 실시간으로 보여줍니다.


4

나는 대답이 아니오라고 믿는다. ~ / .my.cnf 또는 / usr / local / etc에 설치하는 것이 선호되는 솔루션 인 것 같습니다.


2
내 MBP에서만 /etc/my.cnf만이 mysql의 Homebrew 설치에 영향을줍니다.
ewalshe

1

Homebrew의 경우 mysql은 Cellar 디렉토리에서 다음과 같이 my.cnf를 찾습니다.

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

이 경우 구성을 바이너리에 가깝게 유지하는 것이 좋습니다 my.cnf. 누락 된 경우 여기에서 작성 하십시오.

변경 후 mysql을 다시 시작하십시오.

brew services restart mysql

1

서버 버전 : 8.0.19 Homebrew. macOS Catalina 10.15.5 및 Homebrew를 통해 MySQL을 설치했습니다. 이 파일을 여기에서 찾았습니다 :

/usr/local/etc/my.cnf

이 솔루션 은 도움 되었습니다 :)


-1

홈 브루와 함께 설치된 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 초)


-1
  1. $ps aux | grep mysqld /usr/local/opt/mysql/bin/mysqld --basedir=/usr/local/opt/mysql --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/opt/mysql/lib/plugin

  2. my.cf 파일을 /usr/local/opt/mysql

  3. brew services restart mysql

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.