我希望能够在脚本任务中在远程服务器上运行单个查询。
例如,直觉上,我会想象它是这样的:
mysql -uroot -p -hslavedb.mydomain.com mydb_production "select * from users;"
我希望能够在脚本任务中在远程服务器上运行单个查询。
例如,直觉上,我会想象它是这样的:
mysql -uroot -p -hslavedb.mydomain.com mydb_production "select * from users;"
当前回答
下面是你如何用一个很酷的贝壳技巧来做到这一点:
mysql -uroot -p -hslavedb.mydomain.com mydb_production <<< 'select * from users'
'<<<'指示shell将后面的内容作为stdin,类似于echo中的管道。
使用-t标志来启用表格式输出
其他回答
echo "select * from users;" | mysql -uroot -p -hslavedb.mydomain.com mydb_production
如果是经常运行的查询,可以将其存储在文件中。然后任何时候你想运行它:
mysql < thefile
(当然包括所有的登录和数据库标志)
mysql -u <user> -p -e 'select * from schema.table'
(注意使用单引号而不是双引号,以避免shell将*扩展为文件名)
从mysql手册页:
You can execute SQL statements in a script file (batch file) like this:
shell> mysql db_name < script.sql > output.tab
将查询放入脚本中。SQL并运行它。
mysql -uroot -p -hslavedb.mydomain.com mydb_production -e "select * from users;"
从用法打印输出:
- e,执行=名字 执行命令退出。(禁用——force和历史文件)