通过 SSH 隧道的 mysqldump

Posted

技术标签:

【中文标题】通过 SSH 隧道的 mysqldump【英文标题】:mysqldump via SSH tunnel 【发布时间】:2012-08-15 09:32:20 【问题描述】:

我的服务器设置如下:

webserver(网关机器,通过 SSH 访问互联网) dbserver(数据库服务器,无法从网络访问

我的目标是使用mysqldump 通过网络将备份从dbserver 拉到我的笔记本电脑上。到目前为止,问题是 this question 的副本,除了 webserver 没有 安装了 mysqldump,我没有权限安装它。所以我试图在我的笔记本电脑上使用mysqldump 从我没有 SSH 权限的网关后面的服务器中提取。

在讨论here 和here 之后,我正在尝试做这样的事情来建立隧道:

ssh -f -L 3306:dbserver:3306 user@webserver -N

接着是:

mysqldump -P 3306 -h localhost -u dbuser -p db

但是我遇到了与this person 相同的麻烦,并且不太确定隧道发生了什么或如何修复它(并且在我的笔记本电脑的主机文件中添加一个条目似乎并没有像它那样修复它为他做了)。

【问题讨论】:

【参考方案1】:

每天将数据库转储到网关机器,然后从那里获取

#!/bin/sh
# Backup the mysql Databases
 for database in $(mysql -u b4ckup -pd1psh1t --host server.database.net -e "show databases" | awk 'print $1' | grep -v Database)
do
        mysqldump -u user -p password --lock-tables=false --host server.database.net $database > /storage/backups/`date +\%Y-\%m-\%d`-`date +\%A`/server/$database.sql
done 

【讨论】:

网关机器上没有安装mysqldump。 你在mysql服务器上调用dump 知道了。 +1,但我不够清楚:我没有 SSH 访问 dbserver 机器根本,所以我无法直接在 dbserver 上调用 mysqldump。因此我尝试使用我的本地 mysqldump 实例,但我必须通过网关才能这样做。如果我的大学仍然允许非教师使用 *** 访问,这一切都将如此简单>.

以上是关于通过 SSH 隧道的 mysqldump的主要内容,如果未能解决你的问题,请参考以下文章

DBeaver 通过 SSH 隧道连接

通过 SSH 隧道访问端点

PyCharm SSH 隧道通过本地 ssh 配置 (~/.ssh/config)

PostgreSQL 通过 SSH 隧道

通过 php 中的 ssh 连接隧道请求

PhpStorm XDebug 通过 ssh 隧道