web-dev-qa-db-fra.com

Comment lancez-vous une requête unique via mysql à partir de la ligne de commande?

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

Par exemple, intuitivement, j'imagine que cela donnerait quelque chose comme:

mysql -uroot -p -hslavedb.mydomain.com mydb_production "select * from users;"
127
Matthew
mysql -u <user> -p -e "select * from schema.table"
209
RC.
mysql -uroot -p -hslavedb.mydomain.com mydb_production -e "select * from users;"

A partir de l'impression d'utilisation:

-e, --execute=name
Exécute la commande et quitte. (Désactive --force et fichier historique)

21
John Kugelman

voici comment vous pouvez le faire avec un tour de passe-passe pour Shell:

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

'<<<' indique à Shell de prendre ce qui suit sous forme de stdin, similaire à la tuyauterie d'écho.

utilisez l'indicateur -t pour activer la sortie au format table

10
ʞɔıu

Si vous exécutez souvent une requête, vous pouvez la stocker dans un fichier. Ensuite, chaque fois que vous voulez exécutez-le :

mysql < thefile

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

9
dnagirl
echo "select * from users;" | mysql -uroot -p -hslavedb.mydomain.com mydb_production
5
Oct