我在研究MySQL,每次都得学
- 输入
ssh XXX@XXX
命令,并输入我到学校服务器的密码。 - 输入
mysql -u XXX -p
命令,并输入MySQL密码。
我想创建一个 Bash 脚本来自动执行上述步骤。
我可以用这段代码完成第一步:
#!/usr/bin/expect -f
set address xxx.com
set password xxx
set timeout 10
spawn ssh xxx@$address
expect { "*yes/no" { send "yes\r"; exp_continue} "*password:" { send "$password\r" } }
send clear\r
interact
但是我不知道如何自动输入下一条命令(mysql -u xxx -p
)和密码。
我该怎么做?
最佳答案
你不需要这么复杂的脚本来进入远程机器上的 MySQL 控制台。使用 ssh
工具的功能:
ssh -tt user@host -- mysql -uuser -ppassword
-t
选项强制分配伪终端。多个 -t
强制分配 tty,即使 ssh
没有本地 tty(请参阅 man ssh
)。注意 -p
选项的使用。 -p
和密码之间不能有空格(参见mysql
手册)。
或者甚至直接通过 mysql
连接,如果 MySQL 主机可以从您的本地计算机访问:
mysql -hhost -uuser -p
不要忘记调整 shebang :
#!/bin/bash -
关于mysql - 交互式 ssh 和 mysql 命令的 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40434354/