Maison >base de données >tutoriel mysql >Pourquoi MySQL ne peut-il pas accéder à mon fichier lors de l'utilisation de LOAD DATA INFILE ?
LOAD DATA INFILE Code d'erreur : 13
Lors de la tentative de chargement de données dans une table MySQL à l'aide de la commande LOAD DATA INFILE sur un serveur distant , vous pouvez rencontrer le code d'erreur : 13 : "Impossible d'obtenir les statistiques de '/httpdocs/.../.../testFile.csv' (Errcode : 2)". Cela indique que MySQL ne parvient pas à accéder au fichier spécifié.
Les étapes suivantes peuvent aider à résoudre ce problème :
1. Accorder des privilèges suffisants
Assurez-vous que l'utilisateur de la base de données dispose de privilèges suffisants pour accéder au fichier. Pensez à accorder à l'utilisateur les autorisations SELECT, FILE et LOAD DATA :
GRANT SELECT, FILE, LOAD DATA ON *.* TO 'userName'@'%'
2. Définir les autorisations des fichiers et des dossiers
Assurez-vous que les autorisations des fichiers et des dossiers permettent à MySQL de lire le fichier. Définissez les autorisations de fichier sur 644 (rw-r--r--) et les autorisations de dossier sur 755 (rwxr-xr-x) :
<code class="bash">chmod 644 /httpdocs/.../.../testFile.csv chmod 755 /httpdocs/.../.../</code>
3. Vérifiez les paramètres Apparmor
Sur les systèmes Ubuntu, Apparmor peut restreindre l'accès de MySQL aux fichiers. Pour permettre à MySQL de lire les fichiers du répertoire "tmp", ajoutez la ligne suivante à /etc/apparmor.d/usr.sbin.mysqld :
/tmp/** rwk
Reload Apparmor using :
<code class="bash">sudo /etc/init.d/apparmor reload</code>
4. Désactivez SELinux
Si vous utilisez SELinux (Security-Enhanced Linux), cela peut également restreindre l'accès aux fichiers. Essayez de le désactiver temporairement et de réexécuter la commande LOAD DATA INFILE. Consultez votre documentation SELinux pour des instructions spécifiques.
Remarques supplémentaires :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!