0

当我想访问只允许本地访问的 Mysql 服务器时,首先我需要 SSH 到该服务器,然后运行“mysql”命令。但是我想通过一个命令运行它。

当我执行此命令时,终端停止并且光标在 5 或 10 秒后冻结。

ssh arash@10.0.3.1 "/usr/bin/mysql -u db_username -pdfdasdfCASDF -D db_12dgj

有谁知道哪一部分是错的?

4

2 回答 2

2

你需要确保你有一个 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。
于 2012-09-11T06:01:36.517 回答
0

您的 MySQL 用户是否有足够的权限来执行此操作?

您的 MySQL 用户是否具有远程访问权限以远程连接并对此数据库进行操作?

简而言之,您是否先测试了经典方式,然后再进一步,例如

  • 首先连接,
  • 第二次输入你的mysql命令
  • 第三验证它是否有效。

没有隧道:

ssh user@server '/usr/bin/mysql -u{mysqlUser} -p{mysqlPassword} {mysqlDB} -e "select * from table"' 

您可以使用-e开关转义命令,默认转义字符为~.

如果它不起作用,那么我建议您查看dba.stackexchange.com上的这些线程

于 2012-09-11T05:52:08.777 回答