cmd에서
docker login
을 해준다
그러면
Username:
을 물어보는데 아이디가아니라 진짜 이름이다 ㅋㅋ
세상 비번바꾸고 난리났는데
login 하면 Succesful 같은 단어가 뜬다
docker hub 사이트에서 레포지토리를 만들고

cmd로 돌아와 내가 만든 이미지에 tag를 남겨야한다
docker tag nsw2022/my-python:latest nsw2022/my-python:0.1

docker push 레파지토리명:이미지이름:태그값
docker push nsw2022/my-python:0.1
docker hub 레파지토리를 확인하면 가능하다 See all 를 확인해보면


docker pull mysql:8.2.0
docker images
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=1234 -d mysql:8.2.0
docker exec -it mysql-container /bin/bash
mysql -p
// 이후 위에서 설정한 패스워드 입력

비번치고 들간다
SHOW DATABASES; # DB 확인
USE [DB NAME] # DB 접속
SHOW TABLES; # TABLE 확인
SELECT * FROM [TABLE NAME]; #TABLE 조회



docker build -t my-mysql-image .
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=1234 -d my-mysql-image
docker exec -it mysql-container /bin/bash
상황
현재 내 디렉터리에 있는 csv 파일을 내 table에 추가하고싶다.
하지만 내 table은 도커 컨테이너 위의 mysql안에있는 상황 이를 타파해보자
csv는 해당과 같이 구성되어있고
id,name,start_date,end_date
4,lee,2024-01-01,2024-12-31
5,lee,2024-01-04,2025-01-03
6,kim,2024-01-05,2025-01-04
7,kim,2024-01-06,2025-01-05
8,choi,2024-01-07,2025-01-06
9,choi,2024-01-08,2025-01-07
10,park,2024-01-09,2025-01-08
내 sql table은 요래 구성되있다

직접 추가하는 코드를 작성하면
LOAD DATA INFILE '/var/lib/mysql-files/new_member.csv'
INTO TABLE member
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(id ,name, start_date, end_date)
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
과같은 권한 에러가 나온다.
select @@GLOBAL.secure_file_priv;
로 위치확인
SELECT @@GLOBAL.secure_file_priv;는 MySQL 서버에서 파일 작업 가능 디렉토리를 확인하는데 사용되는 쿼리임을 표현한다.

고로 원격으로 container를 접속하여 root로 보내버렸다

이후 mysql 로 다시들어와 다시 시도

LOAD DATA INFILE '/var/lib/mysql-files/new_member.csv'
=> 파일로드
INTO TABLE member
=> 멤버테이블 안에 데이터를 넣겠다
FIELDS TERMINATED BY ','
=> 각 필드는 ,로 구분된다
OPTIONALLY ENCLOSED BY '"'
=> 쌍따옴표로 묵겠다
LINES TERMINATED BY '\n'
=> 끝나는 줄에는 개행문자\n을 추가한다
IGNORE 1 LINES (id ,name, start_date, end_date)
=> 1줄 무시한다 (id ,name, start_date, end_date)
짠!
