我有一个运行着 mysql 数据库的远程网络服务器。 现在我使用 SSH 进行任何服务器端管理,并且我经常访问 MySQL。我想知道我是否有可能制作一个可以通过 ssh 连接到服务器的脚本,如果在命令行上使用“-sql”(可能会更改)运行,它会进入 mysql。
到目前为止我做了什么:
#!/bin/bash
if [ "$1" == "-l" ]; then
ssh user@192.168.0.101 //local address for privacy;
mysql -u root -p;
else
ssh user@192.168.0.101
fi
这会产生一个 SSH session ,当它结束时,我的计算机将尝试在本地计算机上创建一个 mysql 连接。
#!/bin/bash
if [ "$1" == "-l" ]; then
ssh user@192.168.0.101 'mysql -u root -p';
else
ssh user@192.168.0.101
fi
这会导致密码请求,然后什么也没有。我假设它是因为将 ssh 与命令一起使用需要响应,然后关闭连接。
有什么办法可以做到这一点,我知道这并不重要,但是玩起来很有趣
提前致谢
最佳答案
mysql
命令只有在它的输入是终端时才会交互执行。当您使用命令参数运行 ssh
时,它通常不会在服务器上分配伪 tty。所以 mysql
只是处理它的标准输入而不显示提示。
使用 -t
选项强制执行此操作:
ssh -t user@192.168.0.101 'mysql -u root -p'
关于mysql - SSH直接进入MySQL服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30082589/