2013-09-10 2 views
2

Я пытаюсь вставить изображение в свой MySQL-сервер. Я провел некоторое исследование, и, похоже, лучший способ сделать это через LOAD_FILE(). Однако LOAD_FILE() всегда возвращает null. Я знаю, что есть 4 условия для LOAD_FILE():LOAD_FILE возвращает NULL

1) Файл должен быть расположен на сервере хоста
2) Вы должны указать полный путь к файлу, и вы должны иметь привилегию FILE.
3) Файл должен быть доступен для чтения всем и его размеру меньше, чем max_allowed_packet байтов.
4) Если системная переменная secure_file_priv установлена ​​на непустое имя каталога, загружаемый файл должен быть расположен в этом каталоге.

настоящее время я использую:
select LOAD_FILE('/Users/pricedb/Desktop/FolderName/imageName'); и возвращает NULL

Я подтвердил, что все льготы предоставляются пользователю. Что означает, что файл должен быть размещен на сервере? Сервер запускается с моего локального компьютера, и файл находится там, так это значит, что я хорош в этом?

Любой совет будет очень благодарен, я не знаю, почему он не возвращает значение.

+0

Вы пытаетесь загрузить изображение? – Kermit

+0

Да, я загружаю jpg. – user2761933

+0

Помимо того, что вы должны * не * хранить изображения в базе данных MySQL, в чем причина этого? – Kermit

ответ

0

Вот моя команда на Windows 7:

select load_file("C:/Program Files (x86)/MySQL/MySQL Workbench CE 6.0.7/images/hieuImages/a.jpg"); 

И это сработало! Возможно, вы попытаетесь скопировать свои изображения в этот каталог и снова выбрать в mysql.

0

"FILE" является административной привилегией. Когда вы говорите, что были предоставлены все привилегии, включены ли также и глобальные административные привилегии?

Вот синтаксис http://dev.mysql.com/doc/refman/5.1/en/grant.html#grant-global-privileges, но я нашел «MySQL Workbench» GUI более полезным.

Проверьте также права на файлы ОС.

Смежные вопросы