[英]MySQL LOAD_FILE returns NULL
我想讓 SQL LOAD_FILE<\/em>函數正常工作,並閱讀了有關此問題的每一個問題\/答案 + 文檔,但這就是正在發生的事情。
當我想從我的主目錄加載<\/em>文件時:
mysql> SELECT LOAD_FILE('/home/myuser/somefile.txt');
+----------------------------+
| LOAD_FILE('/home/myuser/somefile.txt') |
+----------------------------+
| NULL |
+----------------------------+
1 row in set (0.00 sec)
我發現它與 AppArmor 有關。 我為 MySQL 禁用了 AppArmor,它起作用了。 對於有同樣問題的人,請在此處閱讀: http ://www.cyberciti.biz/faq/ubuntu-linux-howto-disable-apparmor-commands/
要使用此功能,該文件必須位於服務器主機上。
您必須指定文件的完整路徑名。
您必須具有 FILE 權限。
文件大小應小於
max_allowed_packet<\/code>字節。
如果將secure_file_priv 系統變量設置為非空目錄名,則要加載的文件必須位於該目錄中。
如果文件不存在或由於不滿足上述條件之一而無法讀取,則該函數返回 NULL<\/strong> 。
所以我一直在努力解決這個問題,最終找到解決它:
mysql> select LOAD_FILE('/var/www/upload/test.zip');
+---------------------------------------+
| LOAD_FILE('/var/www/upload/test.zip') |
+---------------------------------------+
| NULL |
+---------------------------------------+
1 row in set (0.00 sec)
在嘗試將圖像添加到 blob 字段時,我對 Fedora Linux 也有同樣的問題。
我解決了將文件復制到目錄
\/var\/lib\/mysql\/images<\/code>並給出命令:
Load data infile file_name... 是 MySQL 的正確命令。 而且由於您沒有提供文件中數據的示例,因此我無法告訴您確切地使用它。 有一些變量可以處理分隔符和行尾特征。 祝你好運。
"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.