1. 3306이 접근 가능한 상태인지 확인
첫번째로 우선 아래 링크를 따라 확인해본다. 제일 기본적인 확인 절차..
https://zetawiki.com/wiki/MySQL_ERROR_1045_%EC%A0%91%EA%B7%BC_%EA%B1%B0%EB%B6%80
bind-address를 주석해도 안된다면
으로 설정한다.
그리고 재시작
2. 접속하려는 계정이 외부접속이 가능한 권한을 가졌는지에 대한 문제 확인
위 과정을 통해 접속은 돼는데,, 접근이 거부돼어 실제로는 접속이 튕기는 현상이 발생했다.
이때 1의 과정에서 조회했던 테이블을 확인해보면 같은 계정이더라도 Host 필드가 다른 것을 확인할 수 있다..
mysql> SELECT host, user, password FROM mysql.user WHERE user='root';
+-----------+------+-------------------------------------------+
| Host | User | Password |
+-----------+------+-------------------------------------------+
| localhost | root | *64B2393C4607E57C549B41537134BC7C3314164E |
| myserver1 | root | *64B2393C4607E57C549B41537134BC7C3314164E |
| % | root | *F3A2A51A9B0F2BE2468926B4132313728C250DBF |
+-----------+------+-------------------------------------------+
1 rows in set (0.00 sec)
localhost는 당연히 자기자신의 호스트에서 접속하는 것을 의미하며 %는 모든 외부 호스트에 대해 접근할수있도록 하는 설정이다.
따라서 만일, % 또는 본인이 접속시도 하고자 하는 곳의 호스트가 위에처럼 등록되어있지 않다면 접근 거부 현상이 일어난다.
CREATE USER 'testID'@'%' IDENTIFIED BY 'mytestpw' PASSWORD EXPIRE NEVER;
GRANT ALL PRIVILEGES ON TESTDB.* TO 'testID'@'%';
flush privileges;
이렇게 해주면 자동으로 저 필드에 %가 추가된다.
flush privileges;를 해주는 것을 잊지말자