일단 모든 건 터미널에서 한다는 가정으로.
$ 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 '사용자'@'%';로 해제할 수 있다.
$ cd /etc/mysql/mysql.conf.d
$ sudo vim mysqld.cnf
이 부분을 0.0.0.0으로 변경한다.
$ sudo service mysql restart
변경하고 재실행.
Connection Name은 마음대로 AWS_EC2 등으로 하고, Hostname은 AWS 고정 IP로 넣어 주고, Username에 아까 생성한 그 사용자를 넣고 Test Connection 누르면 연결이 잘된다.
test에 대해서만 권한을 부여받아서 test만 보인다.