IT/Network & OS

[AWS] RDS MySQL Prisma

루벤초이 2022. 2. 6. 14:09

먼저 아래 가이드를 따라서 MySQL DB을 생성합니다.

 

MySQL 데이터베이스를 생성하는 방법 – Amazon Web Services

Network & Security Public accessibility: Yes를 선택합니다. 이렇게 하면 데이터베이스 인스턴스에 대한 IP 주소가 할당되므로 사용자 디바이스에서 데이터베이스에 직접 연결할 수 있습니다. Availability zon

aws.amazon.com

생성이 끝났으면 endpoints를 기억해둡니다.

RDS - Database instance - Endpoints

제대로 만들어졌는지 확인해 봅시다.

먼저 AWS EC2에 로그인하고 아래 명령으로 mysql에 접속해서 show databases; 명령 한 번 내려보세요.

  • $mysql -h "endpoints" -u admin -p

이번에는 로컬 PC에서 접속해 봅시다. 

잠깐만요, 안된다고요?!!!

  • ERROR 2003 (HY000): Can't connect to MySQL server on 'database-1~~~~~'

이런 에러가 나올 때는 데이터베이스 인스턴스를 선택하고 Modify 버튼으로 들어가서 Security group 보안설정이 적절한지, 그래도 안되면 Additional configuration에서 Publicly accessible로 변경합니다. 주의 변경 완료까지 시간이 좀 걸려요~

 

RDS - Database instance - Modify - Connectivity

잘 되네요. MySQL Workbench를 사용해서 연결할 수도 있습니다.

MySQL Workbench

이제 데이터베이스를 만들고 권한을 줍니다.

  • CREATE DATABASE test_db default chracter set utf8
  • use test_db
  • grant all privileges on test_db.* to 'admin'@'%' ;
  • grant CREATE, ALTER, DROP, REFERENCES ON *.* to 'admin'@'%' ;
  • flush privileges;

이제 Prisma를 연동해 봅시다. .env 파일을 만들어 다음과 같이 DATABASE_URL을 지정합니다.

DATABASE_URL="mysql://admin:암호@엔드포인트:3306/test_db"
자세한 내용은 아래 링크 참고합니다.

 

 

Prisma & MySQL 시작하기

Node.js, TypeScript용 ORM인 Prisma를 MySQL과 함께 도입해봅니다🤓

velog.io

 

스키마가 이미 있다면, 아래 명령으로 각각 테이블을 생성하고 초기 데이터를 넣어줍니다.

  • npx prisma migrate dev
  • npx prisma db seed

만일 이 과정에서 P1001 에러가 난다면, DATABASE_URL 끝에 아래 문구를 붙여줍니다.

  • ?connect_timeout=30&pool_timeout=30&socket_timeout=30
 
728x90
반응형

'IT > Network & OS' 카테고리의 다른 글

[AWS] HTTPS & WSS  (0) 2022.02.09
[AWS] Amplify  (0) 2022.02.09
[AWS] EC2  (0) 2022.02.05
ROS - 3. React 웹앱  (0) 2021.05.27
ROS - 2. ROS2 Web Server & 웹앱  (0) 2021.05.17