【发布时间】:2020-09-30 20:41:13
【问题描述】:
我没有远程访问 MySQL 服务器的权限,所以我尝试通过 SSH 会话进行。
它部分有效,但不正确。
sshpass -p $password ssh user@$IP /bin/bash << EOF
mysql -N -uroot -ppassword test -e "select id from client where user ='$user'"
EOF
这将显示 select 语句的结果,但我希望能够在另一个 echo 语句中使用该结果。
例如:
The user ID is: xxxxx
我尝试使用以下方法将输出分配给变量:
sshpass -p $password ssh user@$IP /bin/bash << EOF
res=$(mysql -N -uroot -ppassword test -e "select id from client where user ='$user'")
echo $res
EOF
但这会导致:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/run/mysql/mysql.sock' (2)
如果我像'EOF' 这样引用EOF,那么我可以将结果输入res,但我无法使用$user
有没有办法这样做,所以我可以在 heredoc 中使用我的变量并将 MySQL 查询的结果获取到一个新变量?
【问题讨论】: