MySQL 외부 접속 허용

log·2021년 10월 16일
0

사용자 생성

일단 모든 건 터미널에서 한다는 가정으로.

$ mysql -u root -p

mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;

'username'@'%'에서
localhost는 local 즉, 내부에서만 접근 가능
%는 외부에서도 접근 가능
특정 아이피 (000.000.000.000)는 설정 ip 주소로만 접근 가능
사용자의 접근 권한을 각각 다르게 설정할 수 있다.

mysql> SELECT user, host from mysql.user; // 사용자 목록을 보여 준다.

테스트 데이터베이스 생성

// test db 생성
mysql> CREATE DATABASE test
mysql> SHOW databases;

잘 만들어졌다.

권한 부여

mysql> GRANT ALL PRIVILEGES ON 원하는DB.* to '사용자'@'%';
mysql> FLUSH PRIVILEGS;
mysql> SHOW GRANTS FOR '사용자'@'%'; // 잘 할당됐는지 볼 수 있음

설정된 권한은 REVOKE ALL PRIVILEGES ON 할당된DB.* to '사용자'@'%';로 해제할 수 있다.

MySQL 설정 변경

$ cd /etc/mysql/mysql.conf.d
$ sudo vim mysqld.cnf 

이 부분을 0.0.0.0으로 변경한다.

$ sudo service mysql restart

변경하고 재실행.

Workbench로 확인


Connection Name은 마음대로 AWS_EC2 등으로 하고, Hostname은 AWS 고정 IP로 넣어 주고, Username에 아까 생성한 그 사용자를 넣고 Test Connection 누르면 연결이 잘된다.
test에 대해서만 권한을 부여받아서 test만 보인다.

0개의 댓글