본문 바로가기

Back-end/library

mac brew에서 설치한 mysql my.cnf가 안먹을때

mac에서 mysql  원격접속 허용해주기

my.cnf

mysql의 경우 설정파일로 my.cnf파일을 이용한다.

mysql --verbose --help | grep my.cnf

위 명령어를 통해 my.cnf 파일을 찾아보자.

결과가 order of prefrence 로 나온다면 파일들의 순서가 나온다.
필자의 경우 하기와 같다.

/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf

위 순서 순으로 my.cnf파일을 참조한다.

디버깅때문에 구글링하다 알게된 사실인데 my.ini파일이 존재할시 my.cnf을 오버라인드 한다는 이야기가 있다 참 X같다.

만약에 자신의 my.cnf파일이 없다면 mysql이 설치된 위치에 가면 supprt-files/my.default.cnf가 있다. 이걸 /etc/my.cnf로 복사해주자.

이곳에서 bind-address:127.0.0.1 로 되어있는걸 0.0.0.0으로 바꾸어주자.

0.0.0.0으로 해주는건 매우 위험한 설정이라는데 개발환경에서는 접속조차 안되는게 더 위험한 설정이다.

그 후 mysql을 다시 시작해주자.

그리고 mysql -uroot -p를 통해 mysql에 접속 후 root의 권한을 열어주자

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'gks2435' WITH GRANT OPTION;

만약 보안이 걱정이라면 따로 계정을 만든 후 계정명@아이피로 설정해주자.

brew 사용자

brew services를 통해서 mysql을 설치했다면 참 X 같은 경우다. 필자가 그랬다.
뭐 검색되는 내용도 별로 없고 어쩌라는건지 참..

mdfind -name homebrew.mxcl.mysql.plist

위 커맨드를 통해 설정파일을 찾아내자 위 설정파일들이 기존 my.cnf파일을 전부
오버라이딩 하기때문에 my.cnf을 아무리 수정해봐야 소용없다.

위 파일의 bind-address 수정후 재시작을 하자.

체크

sudo lsof -i -n -P | grep TCP | grep mysql

이제 포트가 열렸는지 확인해보자.

mysql 설정파일에는 mysql/supprt-files 이안에 대부분 my-default.cnf가 있다.
bind-address = 0.0.0.0을 통해 원격접속을 해주자.

현재 설절중인 mysql my.cnf파일은 mysql --verbose --help | grep my.cnf명령어를 통해 알 수 있다. bind-address = 0.0.0.0으로 수정하자

brew services restart mysql

mysql brew의 경우 my.cnf파일을 override하는 내용이 있다.
FBGM harry@~:> mdfind -name homebrew.mxcl.mysql.plist
/Users/harry/Library/LaunchAgents/homebrew.mxcl.mysql.plist
/usr/local/Cellar/mysql/5.7.17/homebrew.mxcl.mysql.plist

"Internal": false,
http://www.apple.com/DTDs/PropertyList-1.0.dtd">
KeepAlive
Label
homebrew.mxcl.mysql
ProgramArguments
/usr/local/opt/mysql/bin/mysqld_safe
--bind-address=0.0.0.0
--datadir=/usr/local/var/mysql
RunAtLoad
WorkingDirectory
/usr/local/var/mysql
~
~
~
~