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">KeepAliveLabelhomebrew.mxcl.mysqlProgramArguments/usr/local/opt/mysql/bin/mysqld_safe--bind-address=0.0.0.0--datadir=/usr/local/var/mysqlRunAtLoadWorkingDirectory/usr/local/var/mysql~~~~