본문 바로가기
인프라

Docker, MySQL with 파이썬

by 스티브 십잡스 2024. 4. 24.

폴더 구조

mysql/
    Dockerfile
    my.cnf
    sqls/
        initialize.sql
  • Dockerfile
    FROM mysql:8.0
    
    ADD ./my.cnf /etc/mysql/conf.d/my.cnf​
  • my.cnf
    [mysqld]
    character-set-server=utf8mb4
    
    [mysql]
    default-character-set=utf8mb4
    
    [client]
    default-character-set=utf8mb4
    utf8mb4는 이모지를 지원하는 utf8

 

데이터베이스 초기 설정

# mysql 컨테이너 접속
docker exec -it 컨테이너 아이디 /bin/bash

# .sql 파일 실행
cd docker-entrypoint-initdb.d/
mysql -u root -p --port 3306 < initialize.sql

 

MySQL 주의사항

 

cryptography package is required for sha256_password or caching_sha2_password auth methods 에러 해결하기

flask로 구축한 API를 호출할 때 cryptography 패키지 오류가 나타났다. 이 오류를 해결하는 간단한 방법에 대해 알아보자.

blog.harampark.com

aiomysql를 통해 async 연결을 하면, 에러가 발생하지만 해결되지 않는다.

pymysql 또는 mysql+connector를 통해 sync 연결을 하면 괜찮다.

성능이 pymysql이 훨씬 좋다는데 지금도 그러는지 확인이 필요하다.