如何ssh到linux框并执行一个有字符串的mysql命令?

时间:2016-01-08 08:10:37

标签: mysql shell ssh

让我们使用这个例子:

#!/bin/bash
ssh me@host "mysql -uuser -ppwd -t -e 'select * from mydb.mytable where id='$1''"

注意一个问题:命令本身的单引号内的单引号。我试图逃避它(\') - 没有运气,"Unmatched '"说。想法?

2 个答案:

答案 0 :(得分:2)

尝试

#!/bin/bash
echo "select * from mydb.mytable where id='$1';" | ssh me@host mysql -uuser -ppwd -t

答案 1 :(得分:0)

即使@ringo已回答您的确切查询,但由于以下原因我发布此内容 -

通过ssh,您必须与源服务器共享目标服务器。即使没有必要通过ssh与源服务器共享目标服务器,您也可以通过mysql远程连接实现它,如下面的命令。

mysql -h <targetServerIp> -uuser -ppwd -e "select * from mydb.mytable where id='$1';"

注意:确保此用户具有全局权限或目标mysql服务器上的源服务器。