如何从命令行通过mysql运行单个查询?

时间:2009-10-21 19:00:53

标签: sql mysql unix command-line

我希望能够在脚本化任务中在远程服务器上运行单个查询。

例如,直观地说,我认为它会像:

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

6 个答案:

答案 0 :(得分:194)

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

答案 1 :(得分:19)

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

从使用情况打印输出:

  

-e--execute=name
  执行命令并退出。 (禁用--force和历史记录文件)

答案 2 :(得分:8)

这是你如何用一个很酷的shell技巧来做到这一点:

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

'&LT;&LT;&LT;'指示shell将其后面的任何内容作为stdin,类似于echo中的管道。

使用-t标志启用表格式输出

答案 3 :(得分:8)

如果这是您经常运行的查询,则可以将其存储在文件中。然后,只要你想run it

mysql < thefile

(当然包含所有登录和数据库标志)

答案 4 :(得分:5)

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

答案 5 :(得分:0)

来自 mysql 手册页:

   You can execute SQL statements in a script file (batch file) like this:

       shell> mysql db_name < script.sql > output.tab

将查询放入 script.sql 并运行它。