
그림 구성하는 실습.

-> 대본, 동영상 다운로드
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'

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