在命令行中通过ssh在远程机器上运行mysql查询

lk1*_*121 23 mysql ssh remote-access

嗨,我想在远程机器上运行mysql查询

我试过这个

ssh user@192.168.2.26 "mysql -uroot -proot -e \"use test";""
Run Code Online (Sandbox Code Playgroud)

我无法使用该数据库

请建议工作指令

谢谢

小智 35

试试这个:

mysql -h host -u root -proot -e "show databases;";
Run Code Online (Sandbox Code Playgroud)

  • 对我来说,正确的答案是来自@King-Wzrd 的答案。这个缺少 ssh 命令的部分,并且没有给出有关引号的指示,这是解决问题的真正问题 (2认同)

小智 11

试试这个:

ssh root@host "mysql database -e 'query to run on table_name; more queries to run;'"
Run Code Online (Sandbox Code Playgroud)

user@host如果该用户有权执行SQL查询,更不用说一般启动mysql,也可以这样做.使用-e是相同的--execute,它将运行在尾随引号内的任何内容(单引号或双引号)并退出.标准输出格式与您使用的格式相同--batch.

  • 很好的描述为什么会发生问题并需要加引号https://unix.stackexchange.com/a/212298/18674 (2认同)

Vic*_*y T 6

MySql 似乎有一个特殊的命令行语法,其中包括数据库。

mysql -u 用户 -p -e 'SQL 查询' 数据库

这个文档很旧,但我让它工作了

http://www.cyberciti.biz/faq/run-sql-query-directly-on-the-command-line/

使用 ssh 的最终工作命令:

ssh user@host "mysql -u user -e '显示表;' 数据库名称”