J.P*_*Pei 1 mysql linux ssh bash
我正在学习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
Run Code Online (Sandbox Code Playgroud)
但我不知道如何自动输入下一个命令(mysql -u xxx -p)和密码。
我怎样才能做到这一点?
您不需要如此复杂的脚本即可进入远程计算机上的 MySQL 控制台。使用该工具的功能ssh:
ssh -tt user@host -- mysql -uuser -ppassword
Run Code Online (Sandbox Code Playgroud)
该-t选项强制进行伪终端分配。多次-t强制 tty 分配,即使ssh没有本地 tty(请参阅 参考资料man ssh)。注意选项的使用-p。和密码之间不能有空格-p(请参阅手册mysql)。
或者甚至mysql直接通过连接,如果 MySQL 主机可以从本地计算机访问:
mysql -hhost -uuser -p
Run Code Online (Sandbox Code Playgroud)
不要忘记调整shebang:
#!/bin/bash -
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
905 次 |
| 最近记录: |