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历史记录之外.
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)
这可以确保转储在与其他事务隔离的单个事务中运行,从而阻止部分事务的备份.
例如,假设您有一个游戏服务器,人们可以使用他们的帐户信用额购买齿轮.对数据库基本上有两个操作:
现在,如果在这些操作之间发生转储,则下次还原备份时将导致用户丢失所购买的项目,因为第二个操作未转储到SQL转储文件中.
虽然它只是一个选项,但基本上没有太多理由不将此选项与mysqldump一起使用.
Unn*_*wut 20
这个主题显示在我的谷歌搜索结果的第一页上,所以这里有一些对新来者有用的提示.
你也可以转储sql并将其压缩成一行:
mysqldump -u [username] -p[password] [database_name] | gzip > [filename.sql.gz]
Run Code Online (Sandbox Code Playgroud)