MySQL LOAD_FILE retourner NULL
Je suis en train de faire ce SELECT LOAD_FILE("/home/user/domains/example.com/public_html/robots.txt") AS tmp FROM tmpTable
mais elle renvoie NULL. Comment puis-je vérifier si c'est parce que je n'ai pas le FICHIER privilège ou si c'est autre chose? MySQL ne donnera pas une erreur. (Je suis en utilisant PHP)
Quelqu'un qui a de l'expérience avec LOAD_FILE, dites-moi au sujet de cette fonction:)
<?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'] );
}
S'il vous plaît montrer le code complet que vous utilisez pour exécuter la requête
C'est le code complet (code de test)
avez-vous accordé à l'utilisateur avec les autorisations? Le dossier de SUBVENTION SUR . POUR moi;
Aussi j'ai entendu le LOAD_FILE est un Windows uniquement fonction, mot Linux: forums.mysql.com/read.php?20,218333
Ont eu la "UTILISATION" autorisation uniquement (Partagée d'Accueil)
C'est le code complet (code de test)
avez-vous accordé à l'utilisateur avec les autorisations? Le dossier de SUBVENTION SUR . POUR moi;
Aussi j'ai entendu le LOAD_FILE est un Windows uniquement fonction, mot Linux: forums.mysql.com/read.php?20,218333
Ont eu la "UTILISATION" autorisation uniquement (Partagée d'Accueil)
OriginalL'auteur Simon | 2011-01-05
Vous devez vous connecter pour publier un commentaire.
Ressemble à certaines versions de MySQL sur les distributions Linux ont un bug avec la fonction LOAD_FILE. Voici le fil. À la fin du thread semble qu'il y ait peut-être une solution de contournement.
EDIT:
Puisque vous êtes sur un ordinateur hôte partagé, en regardant les fonctionnalités que vous souhaitez, pourriez-vous juste de lire le fichier à la place? À l'aide de la fichier() devez lire le fichier dans un format de tableau.
OriginalL'auteur Phill Pafford
Un vraiment laid solution de contournement peut être trouvé ici:
http://angkatbahu.blogspot.com.es/2011/03/mysql-loadfile-function-in-ubuntu-it_12.html
Si vous mettez les fichiers que vous souhaitez charger dans /var/lib/mysql/all_images répertoire, ça marche!!!
Testé sous ubuntu 12.10 (et non, chomd avec les fichiers de base de données mysql, n'a pas fonctionné)
Alors que la solution de contournement est laid, j'ai constaté que vous n'avez pas à mettre vos images dans /var/lib/mysql/all_images. J'ai utilisé le fichier /var/lib/mysql/foo_images et il a bien fonctionné. Grâce à cela, j'ai eu mon schéma de base de données de l'installation (un paquet Debian) créer /var/lib/mysql/foo_images, de le remplir avec les fichiers d'image, puis dans mon installation, je lance mon SQL plein de LOAD_FILEs et ensuite supprimer le fichier /var/lib/mysql/foo_images. Le résultat final est parfaitement propre avec un minimum de chance de perturber le fonctionnement de l'installation de MySQL, et les étapes intermédiaires n'étaient pas trop mauvais non plus. J'en suis satisfait.
la raison pour laquelle les autres répertoires ont échoué a été le apparmor bloc
Cette astuce a fonctionné pour moi sur Ubuntu 14.04 LTS. À savoir, mettre votre fichier sous le
/var/lib/mysql/
répertoire, puis de l'utilisation relative des noms de fichiers, par exemple,LOAD_FILE('foobar.txt')
charge/var/lib/mysql/foobar.txt
.OriginalL'auteur Daniel Pecos
POUR voir quels sont les privilèges que vous avez, utilisez
show grants
.J'ai documenté quelques commandes supplémentaires que vous pouvez utiliser pour vérifier si vous remplissez les conditions ici:
http://pastebin.com/Dvsdxh9Y
Addendum je voudrais faire de la documentation. Assurez-vous que:
Exemple de l'autorisation des parents dir:
Exemple de privilèges d'utilisateur:
Dans d'autres session root:
De retour dans la session de l'utilisateur, je n'arrive pas à charger le fichier
.....Mais si je me déconnecte, et de retour dans:
OriginalL'auteur Julien Lamarche