mysqldump通过SSH传输到本地计算机

mysqldump通过SSH传输到本地计算机,mysql,ruby-on-rails,ssh,Mysql,Ruby On Rails,Ssh,我可以通过SSH访问Rails应用程序的生产服务器 我想将生产数据库的mysqldump转储到我的Mac上。请帮助我实现这一目标 通过ssh连接到服务器:ssh远程_username@remote_host 转到“当前”文件夹 进行转储:mysqldump-u用户名-ppassword-h主机数据库>dump.sql 断开与服务器的连接 将dump.sql文件复制到本地计算机:scp remote_username@remote_host:/path/to/dump.sql/Users/Your

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

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

  • 通过ssh连接到服务器:
    ssh远程_username@remote_host
  • 转到“当前”文件夹
  • 进行转储:
    mysqldump-u用户名-ppassword-h主机数据库>dump.sql
  • 断开与服务器的连接
  • 将dump.sql文件复制到本地计算机:
    scp remote_username@remote_host:/path/to/dump.sql/Users/YourName/Documents/dump.sql
  • 再次通过ssh连接到服务器并转到“当前”文件夹
  • 删除dump.sql文件:
    rm dump.sql

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

    ssh 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
    

    我无法让其他人工作

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

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

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

    假设MySQL数据库无法从外部访问,您可以设置一个ssh隧道
    ssh-v-L 13306:production\u mysql\u server:3306-N production\u server
    ,然后在ssh服务器中有足够的可用空间时使用
    mysqldump-h 127.0.0.1-P 13306…
    简易解决方案。
    ssh username@ipadress "mysqldump -u USERNAME -pPASSWORD DB_NAME " > ~/dump.sql