마스터 사용자 이름, 마스터 암호
마스터 사용자의 id와 암호를 작성
이부분은 추후, MySQL에 접속할때 활용되므로 잘 기억해 두어야 함
프로젝트 마다 다르지만
디폴트값으로 설정되어 있는 값을 사용 ~
디폴드값을 설정
최대 스토리지 임계값은 1000GB 로 서정 되어 있다.
퍼블릭 액세스는 "예" 로 지정
"아니요"를 선택하면 퍼블릭 IP 주소가 할당되지 않기 때문에 외부에서 접속할 수 없음
EC2 와 마찬가지로 보안 그룹을 설정하거나 새로 생성할 수 있음.
기존에 사용 중인게 있다면 "기존 항목 선택" 을 누르고 보안 그룹을 추가하면 됨
여기서는 "새로 생성" 으로 할 예정
RDS 인스턴스를 생성할 때 보안 그룹을 새로 생성한 걸 기억나쥬?
데이터베이스는 서버에서 접근 가능해야 하기 때문에 보안 그룹 설정이 추가로 필요한다.
???????여기서 서버란 곧 "EC2 인스턴스의 (탄력적) IP" 를 의미한다.
(탄력적) IP 를 직접 넣는 대신 손쉽게 설정할 수 있는 방법이 있다.
RDS - 파라미터 그룹 클릭 - 파라미터 그룹 생성 후 -편집 클릭
(1)character 검색하여 나오는 6개 utf8mb4 로 설정
(2)time_zone 검색하여 서울로 설정
(3)collation을 검색하여 나오는 2개를 uf8mb4_general_ci로 변경
(내 경우는 3개나와서 3개 변경함)
(4) 마지막으로 max_connections를 150정도로 수정
(1) 메뉴에서 데이터베이스 -> 해당 DB 선택 -> 수정클릭 후
-> 3에서 만들었던 DB파라미터 그룹을 생성한 그룹으로(team-database1) 변경 저장 - 즉시 적용 하기 선택후 저장
(2) ec2 인스턴스로 가서 - 보안 태그선택 - 보안그룹 id 복사
(3) RDS 인바운드 규칙에 EC2 보안 그룹 ID 입력
RDS의 보안 그룹의 인바운드 규칙에 두가지를 추가한다.
1. 내 IP
2. 복사한 EC2 보안그룹id
이제 위에서 복사해두었던 값들을 꺼낼 차례이다. 각 항목에 맞는 값들을 입력한다.
Server Host : 엔드포인트
Port : 포트
Database : DB 이름
Username : 마스터 사용자 이름
Password : 비밀번호
입력이 끝났다면 좌측 하단에 Test Connection... 버튼을 클릭해 접속이 정상적으로 이루어 지는지 테스트한다.
위 처럼 나온다면 테스트 성공!
완료 버튼을 눌러 빠져나온다.
정상적으로 연결이 잘 된 것 같다..!
설정했던 파라미터가 제대로 적용되었는지, 쿼리는 정사적으로 수행 되는지 확인해보기 위해 상단에 SQL 버튼을 선택해서 스크립트 창을 연다.
파라미터 설정 확인하기
SHOW variables LIKE "c%";
Character와 Collation 파라미터를 확인해보기 위해 위 명령어를 수행한다.
설정했던 파라미터의 값들이 모두 설정한대로 제대로 들어가있는 것을 확인한다.
SELECT @@time_zone, now();
타임존 설정을 확인하기 위해 위 명령어를 수행한다.
만약에 timezone 을 변경을 원할 경우 (서울로)
SET time_zone='Asia/Seoul';
하면 변경된다.
CREATE TABLE test (
id bigint(20) NOT NULL AUTO_INCREMENT,
content varchar(255) DEFAULT NULL,
PRIMARY KEY(id)
) ENGINE=InnoDB;
INSERT INTO test(content)
VALUES ("테스트 content");
SELECT *
FROM test;
test라는 테이블을 만들고 한글과 영어를 섞은 문자열 데이터를 삽입해보았다.
쿼리도 정상적으로 수행되었고, 한글 문자열 역시 깨지지 않고 정상적으로 들어갔다.
database에서 rds 연결 후
new console 클릭 한후 - show databases ; 쿼리 수행
use mydb; 수행후
select * from test; 쿼리 수행 하면 Dbeaver에서 만든 테스트 ㅌㅔ이블이 확인 됨을 알 수 있음
포스트맨으로 faq 등록후 확인하니까 잘나옴
마지막으로 EC2에서 접근이 잘되는지 확인하겠습니다.
EC2 에서도 RDS에 접속할 수 있는지 확인하기 위해 Putty를 실행하고 먼저 mysql을 설치한다.
명령어 안됨 sudo yum install mysql
아래와 같은 에러가 난다. 이유는?
Last login: Sun Mar 5 05:06:50 2023 from 45.64.145.40
ubuntu@ip-172-31-2-147:~$ sudo yum install mysql
sudo: yum: command not found
ubuntu@ip-172-31-2-147:~$
해결방법:해결방법: yum 설치 한후 하면된대용~ yum 설치 에러로 apt로 바꿈
sudo apt install mysql
EC2에 SSH 접근을 확인합니다.
접속되었다면 MySQL 접근 테스트를 위해 MySQL CLI를 설치하겠습니다.
설치후 아래 명령어 대로 한다.
(1)
sudo apt install mysql
(2)설치가 완료되었다면 로컬에서 접근하듯이 계정,비밀번호, 호스트 주소를 사용해 RDS에 접속합니다.
mysql -u 계정 -p -h Host주소
ubuntu@ip-172-31-2-147:~$ sudo apt install mysql
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package mysql
ubuntu@ip-172-31-2-147:~$ sudo apt update //업데이트
Hit:1 http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu bionic InRelease
....
Building dependency tree
Reading state information... Done
6 packages can be upgraded. Run 'apt list --upgradable' to see them.
//mysql-client 설치
ubuntu@ip-172-31-2-147:~$ sudo apt install mysql-client
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libaio1 mysql-client-5.7 mysql-client-core-5.7 mysql-common
The following NEW packages will be installed:
libaio1 mysql-client mysql-client-5.7 mysql-client-core-5.7 mysql-common
0 upgraded, 5 newly installed, 0 to remove and 6 not upgraded.
Need to get 8811 kB of archives.
After this operation, 62.1 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://ap-northeast-2.ec2.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libaio1 amd64 0.3.110-5ubuntu0.1 [6476 B]
...
// mysql 버전확인
ubuntu@ip-172-31-2-147:~$ mysql -V
mysql Ver 14.14 Distrib 5.7.41, for Linux (x86_64) using EditLine wrapper
ubuntu@ip-172-31-2-147:~$ mysql -h team-database1.cjqopg7k8xlv.ap-northeast-2.rds.amazonaws.com -u admin -p
Enter password:
ERROR 1045 (28000): Access denied for user 'admin'@'172.31.2.147' (using password: YES)
ubuntu@ip-172-31-2-147:~$ mysql -h team-database1.cjqopg7k8xlv.ap-northeast-2.rds.amazonaws.com -u admin -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 347
Server version: 8.0.31 Source distribution
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
MYSQL 클라이언트는 서버가 관리하는 데이터베이스의 정보를 조작하기 위해 서버와 통신하는 프로그램입니다. 예 : mysql 은 서버의 텍스트 기반 프런트 엔드 역할을하는 명령 줄 프로그램입니다.
남은 부분은 다음 블로그에서 정리~
최종프로젝트(13) . Spring boot 와 MySQL 연결
AWS EC2 RDS MySQL생성
AWS EC2 RDS MySQL연결
AWS-RDS-DBeaver에-연결하기