MySQL에 BLOB 및 CLOB 파일을 삽입하는 방법?
이미지와 .docx/.doc, .pptx/.ppt, .pdf 파일을 소프트웨어의 프론트엔드를 사용하여 저장하고 싶습니다.이것을 어떻게 구현하고 어떻게 BLOB 파일과 CLOB 파일을 테이블에 삽입해야 하는지 이해가 되지 않습니다.제발 도와주세요.
저는 Kubuntu 11.04, MySQL5, Qt 4.7.3을 사용하고 있습니다.
두 가지 방법:
INSERT INTO table1 VALUES(1, LOAD_FILE('data.png'));
2 - 파일을 16진수 문자열로 삽입합니다(예: -
INSERT INTO table1 VALUES
(1, x'89504E470D0A1A0A0000000D494844520000001000000010080200000090916836000000017352474200AECE1CE90000000467414D410000B18F0BFC6105000000097048597300000EC300000EC301C76FA8640000001E49444154384F6350DAE843126220493550F1A80662426C349406472801006AC91F1040F796BD0000000049454E44AE426082');
INSERT INTO MY_TABLE(id, blob_col) VALUES(1, LOAD_FILE('/full/path/to/file/myfile.png')
LOAD_FILE에는 여러 조건이 첨부되어 있습니다.MySQL 설명서에서:
LOAD_FILE(파일_이름)
파일을 읽고 파일 내용을 문자열로 반환합니다.이 기능을 사용하려면 파일이 서버 호스트에 있어야 하고 파일의 전체 경로 이름을 지정해야 하며 FILE 권한이 있어야 합니다.파일은 모든 사용자가 읽을 수 있어야 하며 크기는 max_allowed_packet 바이트보다 작아야 합니다.secure_file_priv 시스템 변수가 비어 있지 않은 디렉토리 이름으로 설정된 경우 로드할 파일이 해당 디렉토리에 있어야 합니다.
이전 조건 중 하나가 충족되지 않아 파일이 존재하지 않거나 읽을 수 없는 경우, 함수는 NULL을 반환합니다.
또한 LOAD_로 버그가 있습니다.리눅스에서 파일.버그 및 MySQL LOAD_에 대해서는 http://bugs.mysql.com/bug.php?id=38403 참조파일에서 해결 방법에 대해 NULL을 반환합니다.Ubuntu 12.04 MySQL 5.5.32에서는 다음과 같은 기능이 있습니다.
- /tmp에 파일 복사
- 소유권을 mysql 사용자로 변경
chown mysql:mysql /tmp/yourfile
- 파일 권한이 있는지 확인하려면 mysql root 사용자로 mysql에 로그인합니다.
- 삽입문 실행
또는 MySQL Workbench를 사용하여 행, 마지막 행을 선택하고 블롭이 없는 행을 삽입한 다음 마우스 오른쪽 버튼을 클릭하여 "Load Value From File"을 선택할 수 있습니다.
INSERT INTO table1 VALUES(1, LOAD_FILE(data.png));
안 먹히겠지만
INSERT INTO table1 VALUES(1, LOAD_FILE('data.png'));
(로컬 디렉토리에 assuming data.png가 있음)
쿼리를 통해 Blob을 저장하는 동안 "Column 'image'가 null일 수 없습니다" 오류가 발생하는 사용자 :-
MySql 명령줄 클라이언트를 열고 root 사용자로 로그인하고 다음을 입력합니다.
mysql> SHOW VARIABLES LIKE "secure_file_priv";
이것은 파일들에 접근하기 위해 MySql에 의해 사용되는 안전한 경로를 보여줄 것입니다. 비슷한.
+------------------+-----------------------+
| Variable_name | Value |
+------------------+-----------------------+
| secure_file_priv | /var/lib/mysql-files/ |
+------------------+-----------------------+
이 폴더 안에 파일을 붙여넣거나 "secure_file_priv" 변수 값을 "빈 문자열"로 변경하여 어디에서나 파일을 읽을 수 있습니다.
mysql workbench를 사용하는 경우 필드(셀)를 마우스 오른쪽 버튼으로 클릭하고 'load value from file' 옵션을 선택한 후 파일을 찾아 open을 클릭한 후 apply를 클릭합니다.이렇게 자동으로 쿼리를 생성합니다.
UPDATE `dbname`.`tablename` SET `columnname` = ? WHERE (`row` = '1');
언급URL : https://stackoverflow.com/questions/10729824/how-to-insert-blob-and-clob-files-in-mysql
'programing' 카테고리의 다른 글
C의 부호 없는 16진수 상수? (0) | 2023.10.15 |
---|---|
월을 이름에서 숫자로 바꾸다 (0) | 2023.10.15 |
mysql 사용자가 존재하는지 확인하는 중 (0) | 2023.10.10 |
Powershell Web Admin Commandlets로 IIS 사이트의 앱 풀을 변경하는 방법 (0) | 2023.10.10 |
절차에 대한 각 대안에 대한 MySQL (0) | 2023.10.10 |