Maison >base de données >tutoriel mysql >Comment réparer \'Code d'erreur : 1290. Le serveur MySQL s'exécute avec l'option --secure-file-priv...\' ?
Erreur rencontrée : privilèges de fichiers sécurisés du serveur MySQL restreignant l'exécution de l'instruction
Vous avez rencontré l'erreur « Code d'erreur : 1290. Le serveur MySQL s'exécute avec l'option --secure-file-priv, il ne peut donc pas exécuter cette instruction" lors de la tentative d'exécution d'une instruction MySQL qui implique l'utilisation de la commande INTO OUTFILE.
Cause de l'erreur :
L'option secure-file-priv limite les répertoires dans lesquels MySQL peut écrire des fichiers pour améliorer la sécurité. Par défaut, cette option empêche MySQL d'écrire dans des répertoires externes.
Solution immédiate (changement sans configuration) :
Une solution rapide pour résoudre ce problème consiste à identifier le répertoire dans lequel MySQL est autorisé à écrire des fichiers :
<code class="sql">mysql> SHOW VARIABLES LIKE "secure_file_priv";</code>
Une fois que vous avez identifié le répertoire autorisé, modifiez votre instruction INTO OUTFILE pour utiliser ce répertoire comme cible :
<code class="sql">SELECT * FROM xxxx WHERE XXX INTO OUTFILE '/var/lib/mysql-files/report.csv' FIELDS TERMINATED BY '#' ENCLOSED BY '"' LINES TERMINATED BY '\n'</code>
Solution permanente (changement de configuration) :
Windows :
Localisez le groupe "[mysqld]" et ajoutez ou modifiez l'option "secure-file-priv" pour spécifiez le répertoire autorisé. Par exemple :
<code class="ini">[mysqld] secure-file-priv="C:/ProgramData/MySQL/MySQL Server 5.6/Uploads"</code>
Linux :
Localisez le groupe "[mysqld]" et ajoutez ou modifiez le "secure- file-priv" pour spécifier le répertoire autorisé. Par exemple :
<code class="ini">[mysqld] secure-file-priv="/var/lib/mysql-files/"</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!