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 到本地计算机的主要内容,如果未能解决你的问题,请参考以下文章
我想简化 SSH 隧道以执行 MySQL 转储并将文件 SCP 到本地计算机