当我想访问一个只允许本地访问的Mysql服务器时,首先我需要通过SSH连接到该服务器,然后运行"Mysql"命令。然而,我想用一个命令来运行它。
当我执行这个命令时,终端停止,光标在5或10秒后冻结。
ssh arash@10.0.3.1 "/usr/bin/mysql -u db_username -pdfdasdfCASDF -D db_12dgj
有人知道哪一部分错了吗?
您需要确保您有一个用于readline的pty。使用ssh
的-t
选项。
ssh -t -t user@server '/usr/bin/mysql -u{mysqlUser} -p{mysqlPassword} {mysqlDB} -e "select * from table"'
man ssh(1):
-t强制伪tty分配。这可以用于执行arbi-远程机器上基于trary屏幕的程序,可以非常有用,例如在实现菜单服务时。倍数-t选项强制tty分配,即使ssh没有本地tty
您的MySQL用户是否有足够的权限执行此操作?
您的MySQL用户是否具有远程访问权限,可以远程连接并在此数据库上执行操作?
简言之,在进一步研究之前,你是否先测试了经典方法,例如
- 第一连接
- 第二步输入mysql命令
- 第三,验证它是否有效
无隧道:
ssh user@server '/usr/bin/mysql -u{mysqlUser} -p{mysqlPassword} {mysqlDB} -e "select * from table"'
您可以使用-e
开关转义命令,默认转义字符为~
。
如果它不起作用,那么我建议您查看dba.stackeexchange.com 上的这些线程