Maison  >  Article  >  base de données  >  Comment corriger l'erreur MySQL 1290 : \"Le serveur MySQL s'exécute avec l'option --secure-file-priv et ne peut donc pas exécuter cette instruction\" ?

Comment corriger l'erreur MySQL 1290 : \"Le serveur MySQL s'exécute avec l'option --secure-file-priv et ne peut donc pas exécuter cette instruction\" ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-27 13:08:02757parcourir

How to Fix MySQL Error 1290:

Erreur MySQL 1290 : option privée de fichier sécurisé bloquant l'exportation de données

Lors de l'exécution d'une instruction MySQL impliquant l'exportation de données vers un fichier à l'aide de INTO OUTFILE clause, les utilisateurs peuvent rencontrer l'erreur « Code d'erreur : 1290. Le serveur MySQL s'exécute avec l'option --secure-file-priv et ne peut donc pas exécuter cette instruction. » Cela se produit lorsque le serveur est configuré avec des mesures de sécurité améliorées qui restreignent les opérations sur les fichiers.

Explication de l'option Secure File Private

Les limites de l'option --secure-file-priv accès aux fichiers et privilèges sur le serveur MySQL. Par défaut, cette option est activée et attribue un répertoire spécifique comme seul emplacement autorisé pour les opérations sur les fichiers. Toute tentative d'accès ou d'écriture dans des fichiers en dehors de ce répertoire désigné entraînera l'erreur 1290.

Solution simple : restreindre le chemin vers le répertoire autorisé

Pour résoudre cette erreur sans modifier paramètres du serveur, les utilisateurs peuvent spécifier explicitement le répertoire autorisé dans la clause INTO OUTFILE :

SELECT *
FROM xxxx
WHERE XXX
INTO OUTFILE '<path/to/permitted/directory>/report.csv'
FIELDS TERMINATED BY '#'
ENCLOSED BY '"'
LINES TERMINATED BY '\n'

Remplacer avec le chemin de répertoire réel autorisé par l'option secure_file_priv.

Solutions alternatives :

  • Désactiver l'option privée de fichier sécurisé :

Cela nécessite de modifier le fichier de configuration MySQL (généralement my.ini ou my.cnf). Commentez ou supprimez l'option secure_file_priv ou définissez-la sur une chaîne vide (``). Cependant, cela réduit la sécurité du serveur et ne doit être effectué que dans des environnements contrôlés.

  • Accorder des privilèges de fichier à l'utilisateur :

Si vous avez besoin d'accéder aux fichiers au-delà du répertoire autorisé, vous pouvez accorder le privilège FILE à l'utilisateur exécutant. Cela peut être fait en utilisant l'instruction SQL suivante :

GRANT FILE ON *.* TO <username>@'<host>';

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