10
votes

Sélectionner dans la tenue de service ne peut pas écrire dans le fichier

J'essaie de faire un Sélectionnez dans Outfile CODE> et je reçois l'erreur suivante:

General error: 1 Can't create/write to file '/home/jason/projects/mcif/web/downloads/dump.csv' (Errcode: 13). Failing Query: "
SELECT name
INTO OUTFILE '/home/jason/projects/mcif/web/downloads/dump.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
FROM account a
  • Je ne sais pas comment savoir ce que le L'utilisateur MySQL est LI>
  • Je ne sais pas comment ajouter l'utilisateur MySQL aux utilisateurs qui sont capables d'écrire dans le dossier code> code> li> ul>

    Je suis sur Ubuntu Linux. Quelqu'un peut-il m'aider à dépasser ces deux choses? P> p>


2 commentaires

Est-ce un environnement hébergé? Comment est invoqué le SQL? S'il s'agit d'un serveur Web, l'utilisateur est probablement tout ce que le serveur Web utilise pour exécuter des gestionnaires de demande.


Si vous utilisez MySQL dans un conteneur Docker , le fichier sera également émis dans votre docker.


4 Réponses :


13
votes

Écrivez le fichier /tmp/dump.csv et le copiez-le. Cela vous permettra de voir qui fonctionne quoi. Je suppose que vous le faites sur le Web et que le client est en cours d'exécution en tant que processus de serveur Web ...


2 commentaires

Problème de puits n ° 2 est le numéro Standard Unix File Perms. Vous pouvez définir votre répertoire pour grouper www-data et donner G + W Perms à ce répertoire. Mais ce n'est probablement pas ce que vous voulez faire, car cela permettrait à tout organisme d'accès au serveur Web à écrire dans ce répertoire. Qu'est-ce que vous appelez cela de (php ?, perl?). La meilleure option est de regarder SUEXEX ou SUPHP (je pense). Pour que le script fonctionne comme votre utilisateur ...


J'ai essayé d'innombrables solutions (changeant Apparmor, courir en tant que root, chown, etc.) et seulement cela a fonctionné.



0
votes

Voici une discussion qui peut aider: Comment puis-je avoir MySQL écrire des extérieures comme une autre utilisateur?

Aussi, s'il vous plaît essayez d'éviter de couvrir vos questions avec duvet. Dans votre cas, vous savez déjà que c'est une question d'autorisations, de sorte que toutes vos jointures SQL et vos tables ne comptent pas. Vous auriez pu simplement utiliser Un champ d'une table dans votre sélection, pour démontrer le problème sans assombrir les choses.


0 commentaires

0
votes

Le client sera probablement mysqld . Vous devez modifier les autorisations d'APARMOR et cela fonctionnera bien. Découvrez Cette réponse


0 commentaires

9
votes

nom d'utilisateur mysql -u --password = Mot de passe - database = Base de données --Execute = 'Sélectionnez champ , champ de Tableau limite 0, 10000 '-X> fichier.xml


0 commentaires