ยซ   2026/03   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Recent Posts
03-20 12:39

Today
Total

Recent Comments
๊ด€๋ฆฌ ๋ฉ”๋‰ด

์—ฐ์˜ ๊ธฐ๋ก ๐Ÿช

DB์— ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ ๋„ฃ๊ธฐ (Mysql, Faker) ๋ณธ๋ฌธ

Computer Science/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

DB์— ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ ๋„ฃ๊ธฐ (Mysql, Faker)

kite707 2025. 10. 12. 18:29

ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด DB์— 100๋งŒ๊ฑด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด๋ณด์ž. ํŒŒ์ด์ฌ์˜ Faker ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด 100๋งŒ๊ฑด์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ธด csvํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ , ์ด๋ฅผ Mysql์—์„œ ๋กœ๋“œํ•˜๋Š” ์‹์œผ๋กœ ์ง„ํ–‰ํ•  ๊ฒƒ์ด๋‹ค.

Faker๋ฅผ ์‚ฌ์šฉํ•ด csv ๋งŒ๋“ค๊ธฐ

๋จผ์ € pip install Faker ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•œ๋‹ค.

์ดํ›„ ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด csv ํŒŒ์ผ์ด ๋งŒ๋“ค์–ด์ง„๋‹ค.

from faker import Faker
import csv

fake = Faker('ko-KR')
with open('users.csv', 'w', newline='') as f: # ํŒŒ์ผ ์ด๋ฆ„ ์„ค์ •
    writer = csv.writer(f)
    for _ in range(1000000): # ๋ฐ์ดํ„ฐ ์šฉ๋Ÿ‰ ์กฐ์ ˆ
        writer.writerow([fake.name(), fake.job(), fake.address()]) # ๋„ฃ๊ณ ์‹ถ์€ ์ปฌ๋Ÿผ

์ฐธ๊ณ ๋กœ 'ko-KR'๋ถ€๋ถ„์„ ๋ฐ”๊พธ๋ฉด ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ๋‹ค. ๋” ๋‹ค์–‘ํ•œ ํ•จ์ˆ˜๋Š” Faker docs์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

CSV ํŒŒ์ผ์—์„œ ๋ฐ์ดํ„ฐ ๋กœ๋“œํ•˜๊ธฐ

์•„๋ž˜์™€ ๊ฐ™์ด ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๋ฉด ๋œ๋‹ค. 100๋งŒ๊ฑด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š”๋ฐ ์•ฝ 0.3์ดˆ๋ฐ–์— ์•ˆ๊ฑธ๋ ธ๋‹ค.

-- ํ…Œ์ด๋ธ” ์ƒ์„ฑ
create table dummy_user
(
    id bigint auto_increment primary key,
    name varchar(100) not null,
    job varchar(100) not null,
    address varchar(100) not null
);

-- ๋ฐ์ดํ„ฐ ๋กœ๋“œ
LOAD DATA INFILE '/var/lib/mysql-files/dummy_user.csv' -- ํŒŒ์ผ๊ฒฝ๋กœ ์„ค์ •
INTO TABLE dummy_user
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(name, job, address);

๊ทธ๋Ÿฐ๋ฐ

[HY000][1290] The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ด ์˜ค๋ฅ˜๋Š” ์ง€์ •๋œ ํด๋”์—์„œ๋งŒ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ๋‹ค๋ฅธ ํด๋”์—์„œ ๋กœ๋“œ๋ฅผ ์‹œ๋„ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ง€์ •๋œ ํด๋”๋Š” ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•ด๋‹น ํด๋”๋กœ ํŒŒ์ผ์„ ์˜ฎ๊ธด ๋’ค ์‹œ๋„ํ•˜๋ฉด ๋œ๋‹ค.

show variables like 'secure_file_priv';

 

๋กœ์ปฌ ํŒŒ์ผ์„ ๋„์ปค๋กœ ์˜ฎ๊ธฐ๊ธฐ

๋‚˜์˜ ๊ฒฝ์šฐ ๋„์ปค๋ฅผ ์ด์šฉํ•ด mysql์„ ๊น”์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋กœ์ปฌ์—์„œ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€๋กœ ํŒŒ์ผ์„ ์˜ฎ๊ฒจ์•ผ ํ–ˆ๋‹ค. ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค.

docker ps ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํ˜„์žฌ mysql์ด ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ ์ด๋ฆ„์„ ํ™•์ธํ•œ๋‹ค.

์ดํ›„ ๋ณต์‚ฌ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

docker cp [์˜ฎ๊ธธ ํŒŒ์ผ ์œ„์น˜] [์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„]:[์˜ฎ๊ธธ ์œ„์น˜ ๋ฐ ํŒŒ์ผ๋ช…]

docker cp ~/Downloads/dummy_user.csv mysql-container:/var/lib/mysql-files/dummy_user.csv

์›ํ•˜๋˜ ์œ„์น˜์— ํŒŒ์ผ์ด ์ž˜ ๋ณต์‚ฌ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

docker exec -it [์ปจํ…Œ์ด๋„ˆ๋ช…] ls ํด๋”์œ„์น˜

docker exec -it mysql_test ls var/lib/mysql-files