Outfile est sa propre autorisation dans mysql.
Si vous avez TOUT c'est inclus.
Mais si vous disposez simplement d'une collection sûre telle que SELECT, INSERT, UPDATE, SUPPRESSION, DROP, CREATE, mais pas OUTFILE, "outfichier" ne fonctionnera pas dans les requêtes. La raison en est que l'accès aux fichiers à partir de MySQL, même à des fins d'écriture, comporte certains risques de sécurité, car si vous accédez à un fichier depuis mysql, vous pouvez accéder à n'importe quel fichier auquel l'utilisateur mysql a accès. autorisations de fichier basé.
Pour contourner ce problème, vous pouvez exécuter votre requête directement dans la sortie de tout shell/langue que vous utilisez pour exécuter le sql avec.
Voici un exemple * nix
>$ echo "select count(predicate),subject from TableA group by subject" | mysql -u yourusername -p yourdatabasename > ~/XYZ/outputfile.txt
Mais le faire sur une seule ligne sans le « \ » ou utiliser le « \ » pour échapper à la coupure de ligne.
Ce qui se passe ici est que vous exécutez une requête dans le client MySQL et il est crachant le résultat, alors vous diriger la sortie vers un fichier. Donc, le fichier n'est jamais appelé depuis mysql, il est appelé après mysql.
Il faut donc utiliser MySQL pour obtenir les informations et jeter ensuite les données dans le fichier à partir de votre propre shell utilisateur et vous serez bien.
Ou trouver un moyen de vous procurer la permission outfile de MySQL, de toute façon.
Que faites-vous exactement? Etes-vous en train de taper des commandes dans la console client mysql ou dans le terminal système? – Vasil
pas lié à la programmation – cletus
Je tape des commandes via la console MySQL – Arnkrishn