MySQL 유저 생성
1. EC2 서버로 접속한 뒤 mysql에 접속한다
2. 유저를 생성한다.
create user 'ankisile'@'%' identified by 'password';
'Username'@'%' : 해당 사용자는 외부에서 접근가능
'Username'@'localhost' : 해당 사용자는 내부에서만 접근 가능
'Username'@'xxx.xxx.xxx.xxx' : 해당 사용자는 지정한 ip주소로만 접근 가능
3. 사용자가 잘 생성되었는지 확인한다
mysql> show databases; // 현재 database를 보여줌
mysql> use mysql; // mysql database를 사용
mysql> select user, host from user; // mysql database의 사용자 목록 출력
잘 생성된것을 확인 가능
4. 간단한 데이터베이스 만들음
mysql> create database RCdb
mysql> show databases;
5. 다음으로는 조금 전에 생성한 ankisile라는 유저에게 RCdb 데이터베이스에 대한 권한을 부여한다
mysql> grant all privileges on RCdb.* to 'ankisile'@'%';
mysql> flush privileges;
mysql> show grants for 'ankisile'@'%'; // 해당 사용자에 대한 권한을 보여줌
MySQL 외부 접속 설정
1. 외부 접속을 하기위한 설정을 해줘야한다. 다음 명령어를 입력해 설정파일인 /etc/mysql/mysql.conf.d/mysqld.cnf를 수정해주자.
2. mysqld.cnf 내부를 살펴보면 bind-address가 127.0.0.1로 되어있는데, 외부 접속을 허용해주기 위해 이를 0.0.0.0으로 바꿔준다.
3. 설정 파일을 변경했으므로 변경사항을 적용해주기 위해 mysql을 재실행해준다.
$ sudo service mysql restart
4. AWS EC2 인스턴스의 인바운드 규칙에 MySQL 접속을 위한 3306 포트를 추가(개방)해준다.
MYSQL 규칙을 추가하고 위치 무관으로 설정해서 어디서나 접근할 수 있도록 해준다.
DataGrip으로 외부에서 MySQL 접속
외부 접속을 하기 위해서 DB 개발과 관리를 용이하게 해주는 GUI 개발 툴인 DataGrip을 이용하도록 하겠다.
원래 workbench가 깔려있으나 찾아보니 workbench는 mysql만 사용가능하지만 datagrip은 mysql 뿐만 아니라 PostgreSQL, MySQL, Oracle, Microsoft SQL Server, Derby, H2, Sqlite 등등 된다고 한다. 그리고 유료다(학생은 무료)
유료면 뭔가 더 좋아보여서 DataGrip을 사용하도록 하겠다.
1. 빈 프로젝트를 생성한다.
2. Database 버튼을 클릭 > Data Source > MySQL
3. 데이터베이스 정보 입력
Host => 인스턴스의 public ip 주소
port => 3306인지 확인
User & Password => 앞서 만든 mysql의 사용자와 비밀번호를 입력
Test Connection으로 연결이 잘 되는지 확인. 두번째 사진처럼 뜬다면 잘 된것.
6. Apply 버튼을 눌러 적용한 뒤 OK 버튼으로 빠져나오면 EC2의 MYSQL 정보를 불러온다. 근데 위에서 생성한 RCdb가 없는 것을 볼 수 있다. 따라서 show databases;를 입력하여 database들을 불러오자
와 잘나온다