2009-10-21 5 views

Répondre

108
mysql -u <user> -p -e "select * from schema.table" 
+1

C: \ Program Files (x86) \ MySQL \ MySQL 5.7 \ bin> mysql.exe - root -p -e "ma requête" ----> ERREUR 1045 (28000): Accès refusé pour l'utilisateur 'root' @ 'localhost' (en utilisant le mot de passe: OUI) –

+0

Ceci devrait être le premier résultat d'une recherche google (pour "mysql exec sql depuis la ligne de commande") et non le site mysql! –

+0

Je ne sais pas pourquoi mais les guillemets ne fonctionnaient pas pour moi, je devais les transformer en guillemets simples – tinybyte

2
echo "select * from users;" | mysql -uroot -p -hslavedb.mydomain.com mydb_production 
8
mysql -uroot -p -hslavedb.mydomain.com mydb_production -e "select * from users;" 

De l'impression d'utilisation:

-e, --execute=name
Exec ute commande et quitte. (Inhibe --force et fichier historique)

5

Voici comment vous pouvez le faire avec un tour de coquille fraîche:

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

« < < < » le shell de prendre tout ce qu'il suit comme stdin, semblable à tuyauterie de l'écho.

utiliser l'option -t pour activer la sortie format de table

5

Si c'est une requête que vous exécutez souvent, vous pouvez l'enregistrer dans un fichier. Ensuite, chaque fois que vous voulez run it:

mysql < thefile 

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

Questions connexes