mysqldump 通过 SSH 到本地计算机

Posted

技术标签:

【中文标题】mysqldump 通过 SSH 到本地计算机【英文标题】:mysqldump via SSH to local computer 【发布时间】:2017-02-22 18:30:36 【问题描述】:

我可以通过 SSH 访问 Rails 应用的生产服务器。

我想将生产数据库的 mysqldump 制作到我的 Mac 上。请帮助我实现这一目标。

【问题讨论】:

假设外部无法访问 MySQL 数据库,您可以设置一个 ssh 隧道ssh -v -L 13306:production_mysql_server:3306 -N production_server,然后使用mysqldump -h 127.0.0.1 -P 13306... 【参考方案1】:

将mysql数据从远程服务器转储到本地计算机的直接方法是:

ssh root@ipaddress "mysqldump -u dbuser -p dbname | gzip -9" > dblocal.sql.gz 

或者

ssh -l root ipaddress "mysqldump -u dbuser -p dbname | gzip -9" > dblocal.sql.gz

两个命令的作用相同。

如果您有 ssh 和数据库访问密码,则会出现两次提示输入密码,或者如果您没有 ssh 密码,则会要求您输入数据库密码。

同样,如果您使用来自 aws 或云其他服务的密钥,您可以将密钥合并到命令中:

ssh -i key.pem root@ipaddress "mysqldump -u dbuser -p dbname | gzip -9" > dblocal.sql.gz

【讨论】:

【参考方案2】:
    通过 ssh 连接到服务器:ssh remote_username@remote_host 转到“当前”文件夹 转储:mysqldump -u username -ppassword -h host database > dump.sql 与服务器断开连接 将 dump.sql 文件复制到本地计算机:scp remote_username@remote_host:/path/to/dump.sql /Users/YourName/Documents/dump.sql 再次通过 ssh 连接到服务器并转到“当前”文件夹 删除 dump.sql 文件:rm dump.sql

【讨论】:

在 ssh 服务器中有足够可用空间时的简单解决方案。【参考方案3】:

我无法让其他人工作。

这是我为 linux 找到的解决方案:

ssh username@ipadress "mysqldump -u USERNAME -pPASSWORD DB_NAME " > ~/dump.sql

这将提示您输入 ssh 服务器的密码,然后将数据库转储到 SSH 服务器上的指定位置。

【讨论】:

以上是关于mysqldump 通过 SSH 到本地计算机的主要内容,如果未能解决你的问题,请参考以下文章

来自远程主机的 mysqldump

mysqldump 把数据库备份到异地的服务器

我想简化 SSH 隧道以执行 MySQL 转储并将文件 SCP 到本地计算机

如何在 Ubuntu 16.04 上从本地计算机打开 ssh 到远程桌面 [不同的 ip]?

使用 SSH 将文件从服务器复制到本地计算机 [关闭]

通过 SSH 隧道的 mysqldump