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