MySQL 외부 접속 시

MySQL 외부 접속 시 "ERROR 1130 (HY000): Host is not allowed to connect to this MySQL server" 에러 해결방법

in

mysql 외부 접속시 아래와 같은 에러가 발생하는 경우가 있습니다.

[root@localhost ~]# mysql --host=3.34.99.98 --port=58233
ERROR 1130 (HY000): Host '<ip_address>' is not allowed to connect to this MySQL server

해당 에러는 외부에서 접속할 경우 접속 권한이 없는 경우 발생합니다.

MySQL(MariaDB) 외부 접근 권한 설정

여기서는 MySQL 서버에서 root 계정에 대한 외부 접근 권한을 적용합니다.

외부에서 접근 가능한 계정의 권한을 조회합니다.

root 계정에 대해 localhost의 접근만 존재하는것을 확인할 수 있습니다.

mysql> mysql> SELECT host,user FROM mysql.user where user = 'root';
+-----------+------+
| host      | user |
+-----------+------+
| localhost | root |
+-----------+------+
1 row in set (0.00 sec)

특정 호스트에 대한 권한을 설정합니다.

% 는 모든 IP를 의미합니다. 특정 IP에 대해서만 허용을 원할 경우, %가 아닌 IP를 기입하시면 됩니다.

mysql> grant all privileges on *.* to 'username'@'%' identified by '<user_password>';

이후 해당 쿼리 조회 시 %(모든 ip)가 추가되어 있습니다.

mysql> select user, host from user where user = 'root';
+------+-----------+
| user | host      |
+------+-----------+
| root | %         |
| root | localhost |
+------+-----------+
2 rows in set (0.00 sec)

이후 외부서버 접속 시 정상적으로 접속됨을 확인할 수 있습니다.

만약 아래와 같은 에러 발생 시, 접속 시 -u -p 인자 추가 후 패스워드 입력하여 접속해주시면 됩니다. `ERROR 1045 (28000): Access denied for user 'root'@'119.196.202.82' (using password: NO)`

[root@localhost ~]# mysql --host=3.34.99.98 --port=58233 -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.7.42-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>