Accès refusé pour LOAD DATA INFILE dans MySQL
Dans MySQL, l'utilisation de l'instruction LOAD DATA INFILE peut entraîner une erreur d'accès refusé, telle que comme "#1045 - Accès refusé pour l'utilisateur 'user'@'localhost' (en utilisant le mot de passe : OUI)."
Cette erreur indique généralement que l'utilisateur actuel exécutant la requête ne dispose pas de privilèges suffisants pour charger des données depuis un fichier dans une table. Pour résoudre ce problème, assurez-vous que l'utilisateur dispose des autorisations nécessaires.
En particulier, l'utilisateur doit disposer du privilège FILE. Ce privilège permet aux utilisateurs de lire des fichiers à partir du système de fichiers du serveur. Sans ce privilège, l'utilisateur ne pourra pas accéder au fichier spécifié.
Pour accorder le privilège FILE à un utilisateur, exécutez la requête suivante :
<code class="sql">GRANT FILE ON *.* TO user_name;</code>
Remplacez user_name par le nom d'utilisateur de l'utilisateur à qui vous souhaitez accorder le privilège.
De plus, pensez à ajouter le mot-clé LOCAL à l'instruction LOAD DATA INFILE. Le mot-clé LOCAL demande à MySQL de lire le fichier depuis la machine client plutôt que depuis le système de fichiers du serveur. Cela peut être plus efficace et sécurisé dans certains cas.
Voici un exemple d'instruction modifiée utilisant LOCAL :
<code class="sql">LOAD DATA LOCAL INFILE 'path/to/file.csv' INTO TABLE table_name;</code>
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!