programing

MySQL에 BLOB 및 CLOB 파일을 삽입하는 방법?

topblog 2023. 10. 15. 16:55
반응형

MySQL에 BLOB 및 CLOB 파일을 삽입하는 방법?

이미지와 .docx/.doc, .pptx/.ppt, .pdf 파일을 소프트웨어의 프론트엔드를 사용하여 저장하고 싶습니다.이것을 어떻게 구현하고 어떻게 BLOB 파일과 CLOB 파일을 테이블에 삽입해야 하는지 이해가 되지 않습니다.제발 도와주세요.

저는 Kubuntu 11.04, MySQL5, Qt 4.7.3을 사용하고 있습니다.

두 가지 방법:

1 - LOAD 사용_FILE 기능 -

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에서는 다음과 같은 기능이 있습니다.

  1. /tmp에 파일 복사
  2. 소유권을 mysql 사용자로 변경chown mysql:mysql /tmp/yourfile
  3. 파일 권한이 있는지 확인하려면 mysql root 사용자로 mysql에 로그인합니다.
  4. 삽입문 실행

또는 MySQL Workbench를 사용하여 행, 마지막 행을 선택하고 블롭이 없는 행을 삽입한 다음 마우스 오른쪽 버튼을 클릭하여 "Load Value From File"을 선택할 수 있습니다.

enter image description here

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

반응형