¿Cómo se ejecuta una única consulta a través de mysql desde la línea de comando?
Estoy buscando poder ejecutar una única consulta en un servidor remoto en una tarea programada.
Por ejemplo, intuitivamente me imagino que sería algo como:
mysql -uroot -p -hslavedb.mydomain.com mydb_production "select * from users;"
Aceptado
mysql -u <user> -p -e 'select * from schema.table'
(Tenga en cuenta el uso de comillas simples en lugar de comillas dobles, para evitar que el shell expanda * en nombres de archivos)
mysql -uroot -p -hslavedb.mydomain.com mydb_production -e "select * from users;"
De la impresión de uso:
-e
,--execute=name
Ejecute el comando y salga. (Desactiva--force
y archivo de historial)
Así es como puedes hacerlo con un fantástico truco de caparazón:
mysql -uroot -p -hslavedb.mydomain.com mydb_production <<< 'select * from users'
'<<<' le indica al shell que tome lo que le sigue como stdin, similar a la tubería de echo.
use el indicador -t para habilitar la salida en formato de tabla
echo "select * from users;" | mysql -uroot -p -hslavedb.mydomain.com mydb_production