如何从远程计算机使用MySQL转储

时间:2011-12-09 10:24:19

标签: mysql mysqldump

如何备份在远程服务器上运行的mysql数据库,我需要将备份文件存储在本地pc中。

8 个答案:

答案 0 :(得分:74)

使用Mysqldump

尝试
#mysqldump --host=the.remotedatabase.com -u yourusername -p yourdatabasename > /User/backups/adump.sql

答案 1 :(得分:51)

您是否可以访问SSH?

您可以在shell中使用此命令来备份整个数据库:

mysqldump -u [username] -p[password] [databasename] > [filename.sql]

这实际上是>运算符后跟的一个命令,它表示“获取上一个命令的输出并将其存储在此文件中。”

注意:-p和mysql密码之间缺少空格不是拼写错误。但是,如果您保留-p标志,但实际密码为空,则系统将提示您输入密码。有时建议将密码保留在bash历史记录之外。

答案 2 :(得分:36)

没有人提及 - 单一交易选项。人们应该默认使用InnoDB表来确保数据的一致性。在这种情况下:

mysqldump --single-transaction -h [remoteserver.com] -u [username] -p [password] [yourdatabase] > [dump_file.sql]

这可确保转储在与其他事务隔离的单个事务中运行,从而阻止部分事务的备份。

例如,假设您有一个游戏服务器,人们可以通过他们的帐户信用额购买装备。对数据库基本上有两个操作:

  1. 从他们的学分中扣除金额
  2. 将装备添加到他们的武器库中
  3. 现在,如果在这些操作之间发生转储,则下次还原备份时将导致用户丢失所购买的项目,因为第二个操作未转储到SQL转储文件中。

    虽然它只是一个选项,但基本没有太多理由不将此选项与mysqldump一起使用。

答案 3 :(得分:20)

此主题显示在我的Google搜索结果的第一页上,因此这对于新来者来说是一个有用的提示。

你也可以转储sql并将其压缩成一行:

mysqldump -u [username] -p[password] [database_name] | gzip > [filename.sql.gz]

答案 4 :(得分:3)

mysqldump -h [domain name/ip] -u [username] -p[password] [databasename] > [filename.sql]

答案 5 :(得分:1)

尝试了所有组合,但这对我有用:

mysqldump -u root -p --default-character-set=utf8mb4 [DATABASE TO BE COPIED NAME] > [NEW DATABASE NAME]

答案 6 :(得分:0)

如果您还没有安装 mysql_client 而使用 Docker 容器:

sudo docker exec MySQL_CONTAINER_NAME /usr/bin/mysqldump --host=192.168.1.1 -u username --password=password db_name > dump.sql

答案 7 :(得分:-4)

这是在成功备份.sql文件后恢复备份的方法

mysql -u [username] [databasename]

使用以下命令选择您的sql文件:

source MY-BACKED-UP-DATABASE-FILE.sql