243 votes

Comment exécutez-vous une seule requête via mysql à partir de la ligne de commande ?

Je cherche à pouvoir exécuter une seule requête sur un serveur distant dans une tâche scriptée.

Par exemple, intuitivement, j'imagine que ça irait quelque chose comme :

mysql -uroot -p -hslavedb.mydomain.com mydb_production "select * from users;"

369voto

RC. Points 15804
mysql -u <user> -p -e 'select * from schema.table'

(Notez l'utilisation de guillemets simples plutôt que de guillemets doubles, pour éviter que le shell n'étende le * en noms de fichiers)

40voto

John Kugelman Points 108754
mysql -uroot -p -hslavedb.mydomain.com mydb_production -e "select * from users;"

Depuis l'impression de l'utilisation :

-e, --execute=name
Exécutez la commande et quittez. (Désactive --force et le fichier historique)

24voto

ʞɔıu Points 15907

voici comment vous pouvez le faire avec une astuce coquille cool :

mysql -uroot -p -hslavedb.mydomain.com mydb_production <<< 'select * from users'

'< <<' ordonne à la coque de prendre tout ce qui la suit comme stdin, semblable à la tuyauterie d'ECHO.

utilisez l'option -t pour activer la sortie au format

de table

16voto

dnagirl Points 11581

S'il s'agit d'une requête que vous exécutez souvent, vous pouvez la stocker dans un fichier. Ensuite, chaque fois que vous voulez l'exécuter :

mysql < thefile

(avec tous les drapeaux de connexion et de base de données bien sûr)

9voto

Oct Points 829
echo "select * from users;" | mysql -uroot -p -hslavedb.mydomain.com mydb_production

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X