如何从远程机器使用MySQL转储

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

试试Mysqldump

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

你有访问SSH?

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

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

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

注意:-p和mysql密码之间没有空格不是拼写错误。 但是,如果您将-p标志保留,但实际密码为空,则系统将提示您input密码。 有时候build议将密码保存在您的bash历史logging中。

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

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

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

例如,考虑到你有一个游戏服务器,人们可以用他们的账户信用来购买齿轮。 基本上有两个对数据库的操作:

  1. 扣除他们的信用额度
  2. 添加装备到他们的武库

现在,如果转储发生在这些操作之间,下次您恢复备份将导致用户丢失购买的项目,因为第二个操作不会转储到SQL转储文件中。

虽然这只是一个选项 ,但基本上没有太多的原因,你不使用mysqldump这个选项。

这个主题出现在我的谷歌结果的第一页,所以这里是一个有用的提示新来者。

你也可以将sql和gzip转储到一行中:

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

你可以select其他的方式:

 mysql -u [username] [databasename] 

并select你的SQL文件,如:

 source mydumpdatabase.sql