리눅스에 mysql를 설치하고 원격으로 로그인해야 하는 상황이 있다
(e.x JDBC..)
하지만 맨날 문제가 발생하고 해결법을 까먹어서 이번 기회에 정리하고자 한다.
크게 3가지를 의심해야 한다. (mysql 은 3306 포트를 사용)
1. 리눅스의 방화벽이 3306 port의 접속을 허용하고 있는가?
2. mysql 계정이 원격지 ip에서 로그인 할 수 있는가?
2. 리눅스 mysql의 bind address 확인
1번 해결법
(1)일단 포트를 확인해본다.
#열려 있는 모든 포트 표시
netstat -nap
#확인하려는 포트 번호 상태확인
netstat -nap | grep 3306
#mysql 포트 확인
netstat -ntlp | grep mysqld
(2)리눅스 방화벽 설정 명렁어 iptables을 사용하여 포트를 연다.
#방화벽 설정 정보 확인
iptables -nL
#특정 포트 외부에서 접속 할 수 있도록 열기
(외부에서 내부로 접속 가능하게)
iptables -I INPUT 1 -p tcp --dport 12345 -j ACCEPT
(내부에서 외부로 나갈 수 있도록 포트 열기)
iptables -I OUTPUT 1 -p tcp --dport 9002 -j ACCEPT
출처: https://server-engineer.tistory.com/418 [HelloWorld]
2번 해결법
3번 해결법
etc/mysql/mysql.conf.d 위치에 있는 mysqld.cnf 파일 수정을 해야한다.
bind-address = 127.0.0.1 이라고 되어있는 부분이 있는데, 이러면
원격 접속이 안되므로 이부분을 주석처리 해야한다.
#bind-address = 127.0.0.1