亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用LOAD_FILE將文件加載到MySQL Blob中?

如何使用LOAD_FILE將文件加載到MySQL Blob中?

繁花如伊 2019-11-20 09:58:13
我試圖將文件加載到MySQL blob(在Mac上)中。我的查詢是INSERT INTO MyTable VALUES('7', LOAD_FILE('Dev:MonDoc.odt'))沒有錯誤出現,但文件未加載到Blob中。
查看完整描述

3 回答

?
當年話下

TA貢獻1890條經驗 獲得超9個贊

該手冊指出以下內容:


LOAD_FILE(文件名)


讀取文件并以字符串形式返回文件內容。要使用此功能,文件必須位于服務器主機上,必須指定文件的完整路徑名,并且必須具有FILE特權。該文件必須全部可讀,并且其大小小于max_allowed_packet字節。如果將secure_file_priv系統變量設置為非空目錄名稱,則要加載的文件必須位于該目錄中。


如果文件不存在或由于不滿足上述條件之一而無法讀取,則該函數返回NULL。


從MySQL 5.0.19開始,character_set_filesystem系統變量控制以文字字符串形式給出的文件名的解釋。


mysql> UPDATE t

            SET blob_col=LOAD_FILE('/tmp/picture')

            WHERE id=1;

由此看來,在您的情況下,有不止一件事情可能是錯誤的...


您正在通過完整的路徑嗎?

權限設置正確嗎?

函數返回什么?空值?

您是否嘗試過手冊中提供的查詢?


查看完整回答
反對 回復 2019-11-20
?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

我在Linux上遇到了同樣的問題...


select load_file('/tmp/data.blob');

+-----------------------------+

| load_file('/tmp/data.blob') |

+-----------------------------+

| NULL                        |

+-----------------------------+

最終,在用戶和組所有權更改為“ mysql”之后,我可以成功加載文件:


sudo chown mysql:mysql /tmp/data.blob


查看完整回答
反對 回復 2019-11-20
?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

我只是想補充一下我在測試中發現的警告:

使用時select load_file('/path/to/theFile.txt');,正在加載的文件必須在sql實例所在的計算機上

這很長時間以來一直困擾著我,因為我一直使用MySQL工作臺將文件始終加載到我們的各種sql實例中,并且當使用諸如此類的命令時,LOAD DATA LOCAL INFILE 'C:/path/to/theFile.csv' INTO TABLE無論將文件從我的本地硬盤驅動器中輕松抓取并將其處理到表中,無論實際sql實例運行的位置。但是,該load_file命令似乎至少對我而言沒有相同的行為(也許存在我不知道的local_load_file()命令)。MySQL似乎只允許它從運行sql實例的本地系統中查找文件。

因此,如果您像我一樣,卻無法弄清楚為什么load_file總是返回NULL,請不要擔心...將文件上傳到sql服務器實例,然后從查詢瀏覽器使用該路徑,一切都會很好。


查看完整回答
反對 回復 2019-11-20
  • 3 回答
  • 0 關注
  • 1282 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號