본문 바로가기
App Programming/AWS

[AWS] EC2 MySQL 접속

by goatlab 2024. 5. 16.
728x90
반응형
SMALL

MySQL 설치

 

EC2 인스턴스에 접속하여 다음 명령어로 MySQL을 설치한다.

 

sudo apt-get install mysql-server mysql-client

 

설치 확인을 위해 sudo systemctl status mysql 명령어로 MySQL의 상태가 active (running)인지 확인한다.

 

 

MySQL 초기 설정

 

MySQL의 초기 설정은 다음과 같이 진행된다.

 

  • 초기 비밀번호 설정
  • 외부 접속 허용 설정
  • MySQL 계정 생성

 

터미널에서 sudo mysql을 입력하고 MySQL에 접속한다. 초기 비밀번호 아래의 명령어를 입력하고 Query OK가 나와야 한다.

 

alter user 'root'@'localhost' identified with mysql_native_password by '{초기 비밀번호 설정}';

 

그 다음, exit로 MySQL을 종료한다. root user에 접근하기 위해 다음과 같이 명령하면 된다.

 

mysql -u root -p{초기 비밀번호}

 

외부 접속 허용하기 위해 mysql 설정 파일을 연다.

 

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

 

명령 프롬프트를 bind-address로 이동하고 키보드에서 i 를 입력해서 INSERT 모드로 변경한다. 여기서,   bind-address의 127.0.0.1을 0.0.0.0으로 변경해야 외부 접속이 가능하다.

 

 

파일을 저장하기 위해  esc + : + wq + enter- wq 명령을 순서대로 실행한다. 에러 메시지가 없으면 정상적으로 설정이 완료된 것이다.

 

MySQL에 root 계정 생성 및 모든 권한을 부여하고 비밀번호를 설정한다.

 

mysql -u root -p{비밀번호}
create user 'root'@'%' identified by '{비밀번호}';
grant all privileges on *.* to 'root'@'%';

 

ERROR 1396 (HY000) 에러가 뜨는 경우, user 테이블을 직접 조작해서 일관성이 깨진 상황의 가능성이 있다. 따라서, 사용자 삭제하고 다시 계정 생성 및 권한 부여를 진행한다.

 

drop user 'root'@'%';
flush privileges;

 

MySQL 서버를 재시작하여 수정된 설정 적용한다.

 

sudo systemctl restart mysql

 

인바운드 규칙

 

local에서 EC2 MySQL에 접속하기 위해 인바운드 규칙을 설정한다.

 

 

MySQL WorkBench 접속

 

접속 정보를 추가하기 위해 hostname에 public ip 주소, username에 root, Store in Keychain을 클릭하여 비밀번호 입력한다.

 

 

데이터베이스 생성

 

MySQL 서버에 접속하여 sakila 데이터베이스를 생성한다.

 

mysql -u root -p{비밀번호}
create database sakila;

 

그리고 스키마라는 구조를 먼저 추가하고 데이터를 삽입한다.

 

mysql -u root -p{비밀번호} sakila < data/sakila-schema.sql
mysql -u root -p{비밀번호} sakila < data/sakila-data.sql

728x90
반응형
LIST

'App Programming > AWS' 카테고리의 다른 글

[AWS] PostgreSQL 설치  (0) 2024.05.31
[AWS] 도커 설치  (0) 2024.05.30
[AWS] EC2 Jupyter 서버  (0) 2024.05.21
[AWS] EC2  (0) 2024.05.13
AWS (Amazon Web Service)  (0) 2023.09.14