Docker-mysql-python DB 연결

UICHEOL_HWANG·2023년 11월 17일
post-thumbnail

작업하다가 삽질로 9시간을 보내면서 이건 기억해야겠다는 생각으로 적는다.

lightsail로 배포해놓은 내 상점 데이터들을 토대로 이제 수집한 상점 정보들을 넣으려는데...

나의 mysql은 일단 docker에 있다

나는 컨테이너에 대한 이해도가 굉장히 부족하기 때문에 많은 고난에 부딪혔는데... 그중 하나가 mysql load가 존나게 안 된다는거다

  1. 첫 번째 시도
  • docker exec -it mysqldb mysql -u root -p로 시도
    1-1. 기존 로컬 파일에 있는 데이터가 담긴 csv 파일을 docker로 카피시킨 뒤에 이동

    docker cp /path/local/your/com/data.csv 

    1-2. 로컬 루트를 기반으로 mysql 접속해서 데이터 load

    docker exec -it <your container sql ID> bash 
    mysql -u root -p 
    password : <your password> blind 

    1-3. 데이터베이스 선택

    show databases;
    use databases ;
    show tables;
    # 테이블 확인후에 
    LOAD DATA INFILE '/your/path/data.csv' INTO TABLE hirestaurant_restaurant
    FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 ROWS

    넣어준다

    근데 ... ㅅㅂ ...

    확인해보니까 load data는 보안정책상 문제가 많아서 내가 자체적으로 설정을 해줘야한단다....

    난 귀찮은거 질색이니까 원큐에 해결가능한 방법을 찾다가...

    # 1차적으로 contain sql이 담긴 bash 디렉토리에 data.csv를 복사해줌 
    docker cp path/your/docker/root <your container sql name>:path/your/bash dir/root/data.csv 
    # 복사 완료 
    


    완성되면 저렇게 완료가 뜬다

    그 다음에

    ## bash 들어와서 
    mysql -u admin -p -h <local ip> --local-infile

    로 넣어주면 된다 보통 local ip는 127.0 .. 뭐시기로 시작하는 것들이니 참고하시고

    나는 이 블로그들 보면서 참고했음
    https://ttoj.github.io/study/db/intro/MySQL-csv-import/
    https://leezzangmin.tistory.com/33

query OK 에 행 수가 적혀 나오는거면 완료가 된거다

진짜 9시간동안 개삽질했더니 개발자하기가 정말 싫어진다...

그래도 저를 구원해주신 두 블로거님께 만나시면 삼천배 드리겠습니다

profile
개발 취미로 하는 세일즈맨

0개의 댓글