mysql 외부 접속이 안 돼서 너무 화가났는데 겨우 해결했다.
외부 접속이 안 될 수 있는 원인들을 나열해 보겠다.
우선 mysql 은 default로 3306번 포트를 사용하는데 그 포트가 막혀있으면 당연히 외부에서 접속이 안된다 확인해봐라.
(본인 mysql이 3306번 포트가 아닌 다른 포트를 쓰는건 아닌지도 확인해라)
상대 포트가 막힌지 열린지 확인하는 법이 있다. 그걸로 확인해보자 (바로가기)
포트가 열려있는데도 안되면 /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 변수가 아예 없어도 된다.
local에서 mysql 들어가서
SELECT user, host FROM mysql.user
을 해봐라.
접속하려는 user의 host가 localhost
일 경우에도 접속이 안된다.
host가 %
인 계정을 만들어서 그 계정으로 접속해라.
(user의 host를 %
로 하면, 어느 곳에서나 해당 user로 접속이 가능하다.)