mysqldump通过SSH隧道

时间:2012-08-20 00:44:56

标签: ssh backup mysqldump tunneling

我的服务器设置如下:

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

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

在讨论herehere之后,我正在尝试做这样的事情来设置隧道:

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

接下来是:

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

但我遇到了this person所遇到的同样的麻烦,并且我不太确定隧道是怎么回事或如何修复它(并且在我的笔记本电脑的hosts文件中添加一个条目似乎无法修复它就像它为他做的那样)。

1 个答案:

答案 0 :(得分: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