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 ?

Pourquoi MySQL ne peut-il pas accéder à mon fichier lors de l'utilisation de LOAD DATA INFILE ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-03 20:21:02633parcourir

Why Can't MySQL Access My File When Using 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 :

  • Assurez-vous que le chemin du fichier spécifié dans l'instruction LOAD DATA INFILE est correct et accessible par MySQL .
  • Envisagez plutôt d'utiliser un outil d'importation de données comme mysqlimport ou mysql.connector pour importer des données.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn