Cela peut être dû aux autorisations des utilisateurs mysql.
Comme indiqué ici https://dba.stackexchange.com/questions/17029/cannot-output-mysql-data-to-file
Pour vous accorder le privilège FILE, procédez comme suit :
service mysql restart --skip-networking --skip-grant-tables
mysql <hit enter>
UPDATE mysql.user SET File_priv = 'Y' WHERE user='lea' AND host='localhost';
exit
service mysql restart
L'utilisateur Linux peut écrire un fichier. Mais le service mysql peut être bloqué par apparmor.
Vérifiez ce fichier :/etc/apparmor.d/usr.sbin.mysqld
.
Ajoutez-y votre dossier de projet :
/usr/sbin/mysqld {
[...]
/home/datam/xfers/online/ r,
/home/datam/xfers/online/* rw
[...]
}
Enfin, faites un
sudo /etc/init.d/apparmor reload
Sur les systèmes modernes, mariaDB et mysql sont installés avec le support systemd. Entre autres choses, il a ce paramètre dans /etc/systemd/system/mysql.service :
Empêcher l'accès à /home, /root et /run/user
ProtectHome=true
C'est ce qui l'empêche d'écrire dans /home.