Les gars J'ai une application qui utilise SELECT OUTFILE comme cache pour une autre application, donc elle sort directement dans/dev/shm/some/folder.
Comme il fonctionne sur un serveur d'arrière-plan, je n'ai aucun problème à désactiver toute la sécurité mysql, l'option secure_file_priv n'est pas définie dans le fichier my.ini, mais par défaut défini par la version, comment désactiver la sécurité de ce dossier?
[MySQL Version]
/usr/sbin/mysqld Ver 5.7.12-0ubuntu1 for Linux on x86_64 ((Ubuntu))
[Ubuntu Version]
Description: Ubuntu 16.04 LTS
Release: 16.04
Codename: xenial
La documentation mysql sur secure_file_priv indique que la variable est définie sur un emplacement par défaut du système de fichiers propre à la plate-forme, afin de la sécuriser par défaut.
Cela dit, vous devez définir explicitement la variable sur une chaîne vide dans votre configuration pour désactiver cette fonctionnalité de sécurité.
Pour Ubuntu, éditez le fichier /etc/mysql/mysql.conf.d/mysqld.cnf
et ajoutez la ligne suivante à la fin:
secure_file_priv=""
Assurez-vous ensuite de redémarrer le service.
Pour moi, ajouter à la fin du fichier ci-dessus n'a pas fonctionné.
Je l'ai ajouté au fichier /etc/mysql/my.cnf
dans la section [mysqld] et cela a fonctionné.
Vous pourrez peut-être créer cette section dans le fichier ci-dessus et cela fonctionne également, je ne l'ai pas testée.
Après le redémarrage du serveur, vous pouvez tester avec SHOW VARIABLES LIKE "secure_file_priv";
à condition que vous ayez le droit de le faire.