15. MySQL SQL 고급 - 영화사이트대용량 데이터 구축 실습

김제이아이엠·2025년 10월 24일

MySQL

목록 보기
13/41


그림 구성하는 실습.


-> 대본, 동영상 다운로드

Create DATABASE moviedb;

USE moviedb;
CREATE TABLE movietbl
	(movie_id		INT,
     movie_title	VARCHAR(30),
     movie_director	VARCHAR(20),
     movie_star		VARCHAR(20),
     movie_script	LONGTEXT,
     movie_film		LONGBLOB
) DEFAUlT CHARSET=utf8mb4;

INSERT INTO movietbl VALUES (1, '쉰들러 리스트', '스필버그', '리암 니슨', 
	LOAD_FILE('C:/SQL/Movies/Schindler.txt'),
    LOAD_FILE('C:/SQL/Movies/Schindler.mp4') );
    
SELECT * FROM movietbl; 


NULL값으로 입력이 안된 것을 확인할 수 있음.
1.시스템 변수인 maxallowedpacket 변수가 기본값이(4MG) 너무 작기 때문.
2.그리고 폴더가 보안상 허용이 되어야 함.(보안상 그렇게 세팅 되어 있음)

SHOW variables LIKE 'max_allowed_packet'; --최대 업로드 값을 나타내는 시스템변수로 확인

SHOW variables LIKE 'secure_file_priv';


약 4메가바이트인 것을 확인할 수 있음.

보안폴더

워크벤치 종료 -> 명령프롬프트를 관리자 모드로 열어야 함. -> my.ini 파일을 확인해서 설정을 바꿔야 함.




max_allowed_packet=4m을 1024(1g)m로 바꾼다.

secure-file-priv = C:\SQL\Movies 추가

워크벤치 실행

USE moviedb;
TRUNCATE movietbl; -- 기존 행 모두 제거

INSERT INTO movietbl VALUES (1, '쉰들러 리스트', '스필버그', '리암 니슨',
	LOAD_FILE('C:/SQL/Movies/Schindler.txt'),
    LOAD_FILE('C:/SQL/Movies/Schindler.mp4') );
INSERT INTO movietbl VALUES (2, '쇼생크 탈출', '프랭크 다라본트', '팀 로빈스',
	LOAD_FILE('C:/SQL/Movies/Shawshank.txt'),
    LOAD_FILE('C:/SQL/Movies/Shawshank.mp4') );
INSERT INTO movietbl VALUES (3, '라스트 모히칸', '마이클 만', '다니엘 데이 루이스',
	LOAD_FILE('C:/SQL/Movies/Mohican.txt'),
    LOAD_FILE('C:/SQL/Movies/Mohican.mp4') );
    
SELECT * FROM movietbl;


아깐 NULL이었는데 글자가 들어있음
마우스 오른쪽 -> Open Value in Viewer 클릭

영화 대본이 잘 기록된 것을 확인할 수 있다.

SELECT movie_script FROM movietbl WHERE movie_id=1
	INTO OUTFILE 'C:/SQL/Movies/Schindler_out.txt'
    LINES TERMINATED BY '\\n';
    
SELECT movie_film FROM movietbl WHERE movie_id=3
	INTO DUMPFILE 'C:/SQL/Movies/Mohican_out.mp4'


잘 다운로드 된 것을 확인할 수 있다.

profile
1이되기까지

0개의 댓글