찰리의 놀이터

[EC2] EC2 mysql 설정하기 + DBeaver 연결하기 본문

AWS

[EC2] EC2 mysql 설정하기 + DBeaver 연결하기

차알리 2023. 3. 20. 15:55

EC2 Instance

먼저 EC2 인스턴스를 빠르게 생성합니다.

키페어나 보안그룹은 원래 쓰던 게 존재하지만, 새로 모두 만들어주었습니다.

인바운드 규칙도 보안그룹 설정에서 해주도록 합니다. MySQL을 허용해주어야 합니다.

 

EC2 Instance 연결

인스턴스에 접근해주도록 합니다. 저는 ssh를 사용하여 접근하였습니다.

접근 방법은 아래와 같습니다.

인스턴스 정보 페이지에서 연결 버튼을 누릅니다.

SSH 클라이언트 탭을 누르고 예시에 나와있는 명령어를 복사합니다.

만들어주는 키페어가 있는 디렉토리에서 실행해주도록 합니다.

저는 맥미니를 쓰고 있기 때문에 fingerprint가 아닌 yes로 입력하였습니다.

UNPROTECTED PRIVATE KEY FILE이라는 경고 문구가 보입니다.

권한 출력

권한을 확인하고 chmod 600 ./mysql_key.pem 명령어를 통해 권한 설정을 바꾸어 주도록합니다.

접속이 되었습니다.

 

!! 만약 pem 파일을 기존에 사용하시던 것을 사용하시다가 "Host key verification failed"에러가 발생할 경우 ssh-keygen -R [ IP or DomainName] 명령어를 입력하셔서 해결하시면 됩니다.

EC2 접속 후 설정

우분투 서버 업데이트

$ sudo apt-get update

 

우분투 서버 업그레이드 - 중간중간 Y|n이 나오면 그냥 엔터쳐주시면 됩니다.

$ sudo apt-get upgrade

 

mysql-server 설치

$ sudo apt-get install mysql-server

MySQL 기본 설정

외부 접속 기능 설정(3306 포트 오픈)

$ sudo ufw allow mysql

 

bind-address 변경

$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

해당 부분을 주석처리 합니다.

 

MySQL 실행

$ sudo systemctl start mysql

 

Ubuntu 서버 재시작 시 MySQL 자동 재시작

$ sudo systemctl enable mysql

 

MySQL 접속

비밀번호 입력 시 그냥 엔터쳐주시면 됩니다.

$ sudo mysql -u root -p

또는

$ sudo /usr/bin/mysql -u root -p

 

사용자 등록 및 권한 설정

사용자 정보 확인

mysql> SELECT User, Host from mysql.user

 

Localhost 권한의 사용자

사용자 계정 만들기
mysql> CREATE USER 'charlie'@'localhost' IDENTIFIED BY 'test';
mysql> FLUSH PRIVILEGES;
mysql> SELECT User, Host from mysql.user;

 

사용자 계정 모든 권한 부여하기
mysql> GRANT ALL PRIVILEGES ON *.* TO 'charlie'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> SHOW GRANTS FOR'charlie'@'localhost';
mysql> SELECT User, Host from mysql.user;

 

본래 권한설정 시 ON 뒤에는 [DATABASE 이름].*의 순서로 입력합니다.

외부 접근 권한의 사용자

사용자 계정 만들기
mysql> CREATE USER 'paul'@'%' IDENTIFIED BY 'test';
mysql> FLUSH PRIVILEGES;
mysql> SELECT User, Host from mysql.user;

 

사용자 계정 모든 권한 부여하기
mysql> GRANT ALL PRIVILEGES ON *.* TO 'paul'@'%';
mysql> FLUSH PRIVILEGES;
mysql> SHOW GRANTS FOR'paul'@'%';
mysql> SELECT User, Host from mysql.user;

 

DBeaver 연결

여기서 Test Connection을 하면

와 같이 Access Denied가 뜨는데 charlie 계정은 localhost 계정으로 생성했기 때문입니다.

 

paul 계정으로 연결할 경우 잘 되는 것을 확인할 수 있습니다.

 

 

만약 PublicKeyRetrieval 문제가 발생한다면, driver properties에서 수정해준 후 Test Connection을 해보도록 합니다.