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

Har*_*sha 68 mysql mysqldump

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

Clo*_*ble 75

尝试使用Mysqldump

#mysqldump --host=the.remotedatabase.com -u yourusername -p yourdatabasename > /User/backups/adump.sql
Run Code Online (Sandbox Code Playgroud)


Ian*_*son 53

你有权访问SSH吗?

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

mysqldump -u [username] -p[password] [databasename] > [filename.sql]
Run Code Online (Sandbox Code Playgroud)

这实际上是>操作员遵循的一个命令,它表示"获取上一个命令的输出并将其存储在此文件中".

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

  • man mysql:如果使用短选项表单(-p),则****不能**选项和密码之间有**空格**. (7认同)
  • 很好解释-p和实际密码之间的"无空格" (2认同)

dat*_*.io 37

没人提到--single-transaction选项.人们应该默认使用InnoDB表来确保数据的一致性.在这种情况下:

mysqldump --single-transaction -h [remoteserver.com] -u [username] -p [password] [yourdatabase] > [dump_file.sql]
Run Code Online (Sandbox Code Playgroud)

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

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

  1. 从他们的学分中扣除金额
  2. 将装备添加到他们的武器库中

现在,如果在这些操作之间发生转储,则下次还原备份时将导致用户丢失所购买的项目,因为第二个操作未转储到SQL转储文件中.

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


Unn*_*wut 20

这个主题显示在我的谷歌搜索结果的第一页上,所以这里有一些对新来者有用的提示.

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

mysqldump -u [username] -p[password] [database_name] | gzip > [filename.sql.gz]
Run Code Online (Sandbox Code Playgroud)