将mysqldump备份并恢复至远程服务器

15

我该如何使用mysqldump将数据库备份并还原到远程服务器?

双方都具有root访问权限。我正在使用putty执行此操作。

到目前为止,我尝试了以下操作:

mysqldump -u root -p >z*x311a!@ masdagn_joom15 | mysql \ -u root -p g2154hE6-AsXP --host=207.210.71.26 -C masdagn_joom15temp \g

但它拒绝了

本地密码是:>z*x311a!@

远程密码是:g2154hE6-AsXP


13
以后请注意,公开发布数据库凭证时要谨慎。希望您已经更改了它们! - Brad Koch
如果您在使用命令后只看到一个空的Shell输入字段,则很可能是mysqldump仍在工作。 - clockw0rk
6个回答

18

这个链接提供了使用mysqldump进行备份和恢复的信息,并且给出了一些与远程服务器相关的示例。

来自该链接的重要命令为:

备份:

mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql

还原:

mysql -u root -p[root_password] [database_name] < dumpfilename.sql

1
我真的在使用这个但是当我输入mysqldump命令时它什么也没有显示只有命令提示符再次出现 - manhag

4
[local-server]# mysqldump -u root -prootpswd db | mysql \
                 -u root -ptmppassword --host=remote-server -C db1

[注意:host前有两个连字符(hyphen)]

请注意,在执行以下命令之前,您应该先在远程服务器上创建db1数据库。


2
mysqldump --user=username --password=pwd db_name | bzip2 -c > /backup_dir/db_name.sql.bz2

您可以将此部分嵌入脚本,随后使用FTP传输到其他位置。

要恢复,您可以

bzip2 -d db_name.sql.bz2
mysql --user=username --password=pwd db_name < db_name.sql

1
您的本地密码包含字符>,在大多数shell中被解释为重定向字符。一般来说,如果您将MySQL密码保持为字母数字[A-Za-z0-9],将使您的生活更加方便。如果您避免公开发布密码,系统将更加安全。

0

这是我用于快速转储到另一个远程服务器的方法......假设您已经在两个服务器之间设置了ssh密钥

  • 创建文件dump-to-server.sh
  • 将其chmod为可执行文件(chmod 0755 dump-to-server.sh
  • 运行同步命令./dump-to-server.sh schema_name root@remote.server.net

dump-to-server.sh

\#!/bin/bash

if [[ -z "$1" || -z "$2" ]]; then
  echo "--------- usage ---------";
  echo "./dump-to-server.sh schema_name root@remote.server.net";
  echo "";
else
  mysqldump --opt "$1" | gzip -c | ssh "$2" "gunzip -c | mysql $1"
fi

0

对于单个数据库,从远程服务器备份的方式是:

mysqldump -u<user> -p<pwd> -h<remote-host> [database-name] > dump.sql

恢复的方式是:

mysql -u<user> -p<pwd> -h<remote-host> [database-name] < dump.sql

关于mysqldump选项的更多详细信息可以在此处查看: https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接