Я делаю это SELECT LOAD_FILE("/home/user/domains/example.com/public_html/robots.txt") AS tmp FROM tmpTable но возвращает NULL.  Как я могу проверить это, потому что у меня нет привилегии FILE, или если это что-то еще?  MySQL не даст ошибку.  (Я использую PHP) 
Любой, у кого есть опыт работы с LOAD_FILE, расскажите мне об этой функции 🙂
 <?php $result = mysql_query('SELECT LOAD_FILE("/home/user/domains/example.com/public_html/robots.txt") AS tmp FROM tmpTable') or die(mysql_error()); while($row = mysql_fetch_assoc($result)) { var_dump( $row['tmp'] ); } 
       Похоже, что некоторые версии MySQL в дистрибутивах Linux имеют ошибку с функцией LOAD_FILE. Вот нить . В самом конце потока, похоже, может быть обходной путь.
РЕДАКТИРОВАТЬ:
Поскольку вы находитесь на общем хосте, глядя на функциональность, которую вы хотите, вы могли бы просто прочитать файл? Использование файла () должно читать файл в формате массива.
Очень уродливое обходное решение можно найти здесь:
http://angkatbahu.blogspot.com.es/2011/03/mysql-loadfile-function-in-ubuntu-it_12.html
Если вы поместите файлы, которые хотите загрузить в каталоге / var / lib / mysql / all_images, он работает!
Протестировано в ubuntu 12.10 (и нет, chomd'ing файлы для пользователя mysql, не работает)
  Чтобы узнать, какие у вас есть привилегии, используйте show grants . 
Я документировал некоторые дополнительные команды, которые вы можете использовать, чтобы проверить, соответствуют ли вам условия:
Добавление, которое я сделал бы в документации. Убедиться:
Пример разрешения на родительский каталог:
 mysql> \!  ls -ld `dirname / home / jlam / code / projectName / doc / filesForTesting / images / imageTest01.jpg`
 drwxrwxr--.  2 jlam jlam 4096 12 мая 14:22 / главная / jlam / code / projectName / doc / filesForTesting / images
 mysql> select hex (LOAD_FILE ('/ home / jlam / code / projectName / doc / filesForTesting / images / image
 Test01.jpg '));
 + ------------------------------------------------- -------------------------------------------------- ---------- +
 |  hex (LOAD_FILE ('/ home / jlam / code / projectName / doc / filesForTesting / images / imageTest01.jpg')) |
 + ------------------------------------------------- -------------------------------------------------- ---------- +
 |  NULL |
 + ------------------------------------------------- -------------------------------------------------- ---------- +
 1 строка в наборе (0,00 сек)
 mysql> \!  chmod o + x / home / jlam / code / projectName / doc / filesForTesting / images
 mysql> \!  ls -ld `dirname / home / jlam / code / projectName / doc / filesForTesting / images / imageTest01.jpg`
 drwxrwxr-х.  2 jlam jlam 4096 12 мая 14:22 / главная / jlam / code / projectName / doc / filesForTesting / images
 mysql> select hex (LOAD_FILE ('/ home / jlam / code / projectName / doc / filesForTesting / images / imageTest01.jpg'));
 + ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------
 |  шестигранный (LOAD_FILE ( '/ дом / jlam / код / Projectname / DOC / filesForTesting / изображения / imageTest01.jpg'))                                                                                                                                
 + ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------
 |  FFD8FFE1001845786966000049492A00080000000000000000000000FFEC00114475636B7900010004000000500000FFE10407687474703A2F2F6E732E61646F62652E636F6D2F7861702F312E302F003C3F787061636B657420626567696E3D22EFBBBF222069643D2257354D304D7043656869487
 + ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------
Пример пользовательских привилегий:
 16:38:09 (getImages) ~ / code / projectName / doc / filesForTesting / images $ mysql -u eventCal -p eventCal
 Введите пароль: 
 mysql> показать гранты;
 + ------------------------------------------------- -------------------------------------------------- -------------- +
 |  Гранты для eventCal @ localhost |
 + ------------------------------------------------- -------------------------------------------------- -------------- +
 |  GRANT USAGE ON *. * TO 'eventCal' @ 'localhost' IDENTIFIED BY PASSWORD '* xxxxx' |
 |  ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА `tmp`. * TO 'eventCal' @ 'localhost' |
 |  ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ на `eventCalTesting`. * TO 'eventCal' @ 'localhost' |
 |  ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ на `eventCal`. * TO 'eventCal' @ 'localhost' |
 |  ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ на `eventCal_categoryMigration`. * TO 'eventCal' @ 'localhost' |
 + ------------------------------------------------- -------------------------------------------------- -------------- +
 5 строк в наборе (0,00 сек)
 mysql> select hex (LOAD_FILE ('/ home / jlam / code / projectName / doc / filesForTesting / images / imageTest01.jpg'));
 + ------------------------------------------------- -------------------------------------------------- ---------- +
 |  hex (LOAD_FILE ('/ home / jlam / code / projectName / doc / filesForTesting / images / imageTest01.jpg')) |
 + ------------------------------------------------- -------------------------------------------------- ---------- +
 |  NULL |
 + ------------------------------------------------- -------------------------------------------------- ---------- +
 1 строка в наборе (0,00 сек)
В другой корневой сессии:
mysql> предоставить файл ON *. * to eventCal @ localhost; Запрос ОК, 0 строк, затронутых (0.00 сек) mysql> привилегии flush; Запрос ОК, 0 строк, затронутых (0.00 сек)
В сеансе пользователя я все еще не могу загрузить файл
 mysql> select hex (LOAD_FILE ('/ home / jlam / code / projectName / doc / filesForTesting / images / imageTest01.jpg'));
 + ------------------------------------------------- -------------------------------------------------- ---------- +
 |  hex (LOAD_FILE ('/ home / jlam / code / projectName / doc / filesForTesting / images / imageTest01.jpg')) |
 + ------------------------------------------------- -------------------------------------------------- ---------- +
 |  NULL |
 + ------------------------------------------------- -------------------------------------------------- ---------- +
 1 строка в наборе (0,00 сек)
….. Но если я выйду и вернусь в:
 mysql> exit
 до свидания
 16:40:14 (getImages) ~ / code / projectName / doc / filesForTesting / images $ mysql -u eventCal -p eventCal
 Введите пароль: 
 mysql> select hex (LOAD_FILE ('/ home / jlam / code / projectName / doc / filesForTesting / images / imageTest01.jpg'));
 + ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------
 |  шестигранный (LOAD_FILE ( '/ дом / jlam / код / Projectname / DOC / filesForTesting / изображения / imageTest01.jpg'))                                                                                                                                
 + ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------
 |  FFD8FFE1001845786966000049492A00080000000000000000000000FFEC00114475636B7900010004000000500000FFE10407687474703A2F2F6E732E61646F62652E636F6D2F7861702F312E302F003C3F787061636B657420626567696E3D22EFBBBF222069643D2257354D304D7043656869487
 + ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------