리눅스 mysql 원격으로 로그인 안되는 문제 해결법

Gong Kang·2021년 8월 22일
0

리눅스에 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번 해결법

여기 참고하였다.
https://ssungkang.tistory.com/entry/MySQL-%EC%82%AC%EC%9A%A9%EC%9E%90-%EB%AA%A9%EB%A1%9D-%EC%B6%94%EA%B0%80-%EC%A0%9C%EA%B1%B0-%EB%B0%8F-%EA%B6%8C%ED%95%9C-%EB%B6%80%EC%97%AC-%EC%A0%9C%EA%B1%B0

3번 해결법

etc/mysql/mysql.conf.d 위치에 있는 mysqld.cnf 파일 수정을 해야한다.
bind-address = 127.0.0.1 이라고 되어있는 부분이 있는데, 이러면
원격 접속이 안되므로 이부분을 주석처리 해야한다.
#bind-address = 127.0.0.1

profile
꾸준히 하루에 한번씩..!

0개의 댓글