mysql - SSH直接进入MySQL服务器

标签 mysql linux bash ssh

我有一个运行着 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/

相关文章:

r - 加载共享库时出错 : libicuuc. so.50

linux - nohup 每天创建新文件 nohup.out

mysql - 将索引放在 MySQL 中的日期字段上

mysql - SQL查询在两个表中查找非重复值?

mysql - 在 MySQL 中对同一个表使用子查询

php - 从数据库轮询选择中获取百分比结果

C++ Linux 到 Windows 交叉编译错误

Bash Autocomplete Ubuntu 列出所有而不是循环

linux - 使用 mailx 和 bash 脚本解析邮件正文

linux - 执行相对于另一个用户的主目录的脚本