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;"
mysql -u <user> -p -e "select * from schema.table"
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)
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
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)
echo "select * from users;" | mysql -uroot -p -hslavedb.mydomain.com mydb_production