์ฐ์ ๊ธฐ๋ก ๐ช
DB์ ๋๋ ๋ฐ์ดํฐ ๋ฃ๊ธฐ (Mysql, Faker) ๋ณธ๋ฌธ
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

'Computer Science > ๋ฐ์ดํฐ๋ฒ ์ด์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ์ฟผ๋ฆฌ ๋์์ฑ ๊ฒ์ฆ (Mysql) (0) | 2025.10.29 |
|---|---|
| ์ปค๋ฅ์ ํ(Spring Boot, HikariCP) (0) | 2025.09.30 |
| [๋ฐ์ดํฐ๋ฒ ์ด์ค] B- Tree์ ์ธ๋ฑ์ค์ ์ดํด (3) | 2024.09.04 |