mysql 외부 접속이 안될 때 해결법

정현섭·2021년 4월 29일
0

배경

mysql 외부 접속이 안 돼서 너무 화가났는데 겨우 해결했다.

외부 접속이 안 될 수 있는 원인들을 나열해 보겠다.

원인들

1. 포트 막힘 (3306)

우선 mysql 은 default로 3306번 포트를 사용하는데 그 포트가 막혀있으면 당연히 외부에서 접속이 안된다 확인해봐라.

(본인 mysql이 3306번 포트가 아닌 다른 포트를 쓰는건 아닌지도 확인해라)

상대 포트가 막힌지 열린지 확인하는 법이 있다. 그걸로 확인해보자 (바로가기)

2. my.cnf

포트가 열려있는데도 안되면 /etc/mysql/my.cnf (혹은 /etc/mysql/mysql.conf.d/mysqld.cnf) 에

[mysqld]
bind-address=0.0.0.0

[mysqld] 탭에서 bind-address=0.0.0.0 로 되어있는지 확인해라

나의 경우 127.0.0.1 로 되어있어서 안 됐던 거였다.

아니면 [mysqld] 탭에 bind-address 변수가 아예 없어도 된다.

3. mysql 계정 설정

local에서 mysql 들어가서

SELECT user, host FROM mysql.user

을 해봐라.

접속하려는 user의 host가 localhost 일 경우에도 접속이 안된다.

host가 % 인 계정을 만들어서 그 계정으로 접속해라.

(user의 host를 % 로 하면, 어느 곳에서나 해당 user로 접속이 가능하다.)

0개의 댓글