ec2에 mysql 서버 만들기

dbdbdeep·2024년 1월 13일

1.AWS 세팅

mysql 서버를 맥에다가 세팅하다가 서버세팅까지 마무리하고 내 노트북에서 ssh로 접근해서 SQL로 조회까지 가능하게 하였는데, toad에서 연결을 하려는데 자꾸에러가 나서 그냥 aws에 세팅을 하려한다.
->toad가 문제였다.

AWS란
Amazon Web Service로 아마존 회사의 컴퓨팅 클라우드 서비스이다. 실제로 서버를 만들어서 사용하기에는 공간과 시간이 부족하므로 AWS에서 지원하는 EC2를 사용하여 서버 세팅을 하려한다.

aws에 들어가서 EC2를 생성하면된다.

  • 생성 중 ami라고 있는데 amazone machine image으로 아마존에서 만들어둔 이미지라고 생각하면된다.(윈도우 설치할 때 윈도우이미지 파일로 설치하는 것을 생각하면된다.)

    ec2를 만들 때에 프라이빗 키라는 것을 생성한다. 이것은 EC2에 접근할 때 이 키를 가진자만이 연결이 가능하도록 하는 역할을 한다.
    powershell에서 ec2를 연결할 때 프라이빗 키를 가진 폴더에서

    해당 빨간색 안에 내용을 복사해서 powershell에서 입력하면 연결이 된다.

추후 mysql을 설치한 후 아래와 같이 인바운드 규칙에서 포트3306을 설정해주지않으면 연결이 안된다.
네트워크 - 보안그룹 - 해당하는 보안그룹에 인바운드 규칙 추가

2.MYSQL 설치 및 세팅

우선 apt-get update 명령어로 패키지 관리 툴을 설치한다.
하지만 찾을 수 없다고 뜬다. 내가 만든 ec2는 Amazon Linux 2 AMI로 apt-get이 아닌 yum으로 이용하여 설치해야한다고 한다.
아래와 같은 순서로 설치를 진행하였다.
1. sudo su

  • sudo를 이용하여 관리자 권한으로 명령어 치기 귀찮으니 sudo su로 관리자로 변경

2.yum list mysql*

  • yum package에 mysql 설치 파일이 있는지 확인 거의 대부분 없을테니 생략가능

3.sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el9-5.noarch.rpm

  • yum package에 mysql 설치
  • 만약 "nothing provides libcrypto.so.10()(64bit) needed by"~으로 에러가 발생할 경우 mysql 버젼이 안 맞는거 일수 있으므로 버젼변경
  • https://dev.mysql.com/downloads/repo/yum/ 참고하여 mysql 버젼에 맞게 설치

4.ec2-user]# yum install mysql-community-server

  • 내 서버에 mysql 설치

5.sudo systemctl start mysqld

  • mysql 실행

6.sudo systemctl status mysqld

  • mysql 상태 확인

7.vim /etc/my.cnf

  • characterset 설정
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake

my.cnf의 마지막에 추가해주자

8.systemctl restart mysqld

  • mysql 재시작

9.cat /var/log/mysqld.log | grep 'temporary password'

  • 이런식으로 초기 비밀번호 알아낸다.

10.mysql -u root -p

  • 초기 비밀번호로 로그인한다.

11.alter user 'root'@'localhost' identified with mysql_native_password by '변경할비밀번호';

  • 비밀번호를 변경한다.

12.유저,db,tb 생성

CREATE USER 'test'@'%' IDENTIFIED BY '변경할 비밀번호';

Use musql;

CREATE DATABASE db_test;

Use db_test;

GRANT ALL PRIVILEGES ON *.* to 'test'@'%';

FLUSH PRIVILEGES;

13.테스트 테이블,데이터 생성

CREATE TABLE tb_test(
Id int(11) not null,
name varchar(20) not null
);

Insert into tb_test(id,name) values(1,’test’);

14.vim /etc/my.cnf

  • my.cnf 마지막에 bind-address=0.0.0.0 추가(추가해야 외부에서 접속가능)

15.이제 mysql을 좀 더 편하게 사용하기 위해 외부접속툴로 접속을 하면된다.

  • 하지만 난 에러난다.
    "Authentication method 'caching_sha2_password' not supported by any of the available plugins."
    이 에러는 따로 다루는 걸로

-> 해당 에러는 db세팅의 문제보다는 접속 툴인 toad에서의 인증방식이 문제가 돼서 발생한 에러이다. toad에서 mysql workbench 로 수정해서 접속하니 정상 접속되었다.

profile
DB관련 공부를 합니다.

0개의 댓글