在远程服务器上执行 MySQL 查询,并将输出保存到本地文件

在远程服务器上执行 MySQL 查询,并将输出保存到本地文件
CMD="use metadata; select * from usernames; select * from personData; select usernames.SNo, 
usernames.DataTelid, usernames.UName, personData.ActiveInactive from usernames, personData where usernames.DataTelid=personData.DataTelid into outfile '/tmp/querydb';"
ssh [USER-NAME]@[REMOTE-HOST] 
mysql -h HOST  -u USERNAME -pPASSWORD -e "$CMD"  < /tmp/querydb

我从服务器 A 登录到具有 mysql 数据库的服务器 B。querydb 文件不应该在服务器 B 上创建,而应该在服务器 A 上创建。我陷入困境,该怎么办?

答案1

嗯,我发现两个问题:

  1. 您正在通过 ssh 进入服务器 B,在那里获取 shell,然后执行 mysql 命令。在服务器 B 上执行的任何输出重定向都无法将文件返回到服务器 A。

  2. 您的输出重定向方向错误。

尝试这个:

ssh user@host "mysql -u USER -pPASSWORD -e \"$CMD\"" > /tmp/querydb

相关内容