从命令行下载MySQL转储dump

Downloading MySQL dump from command line

我要离开Linode,因为我没有必要的Linux系统管理技能;在我完成向更为Noob友好的服务的转换之前,我需要下载MySQL数据库的内容。有什么方法可以从命令行执行此操作吗?


您可以使用mysqldump命令行函数来完成这项工作。

例如:

如果是整个数据库,那么:

1
   $ mysqldump -u [uname] -p[pass] db_name > db_backup.sql

如果都是DBS,那么:

1
   $ mysqldump -u [uname] -p[pass] --all-databases > all_db_backup.sql

如果它是数据库中的特定表,那么:

1
   $ mysqldump -u [uname] -p[pass] db_name table1 table2 > table_backup.sql

您甚至可以使用gzip自动压缩输出(如果您的数据库很大):

1
   $ mysqldump -u [uname] -p[pass] db_name | gzip > db_backup.sql.gz

如果您想远程执行此操作,并且您有权访问相关服务器,那么以下操作将有效(假设mysql服务器位于端口3306上):

1
   $ mysqldump -P 3306 -h [ip_address] -u [uname] -p[pass] db_name > db_backup.sql

它应该将.sql文件放到运行命令行的文件夹中。

编辑:如注释中所述,为了避免在命令历史记录中包含密码,请使用不带密码的-p选项。它会提示您输入,而不是记录。


mysqldump就是你要找的。


在MySQL的最新版本中,至少在我的版本中,不能直接将pass放在命令中。

你必须跑:

mysqldump -u [uname] -p db_name > db_backup.sql

然后它会要求输入密码。


如果从远程服务器下载,下面是一个简单的示例:

1
mysqldump -h my.address.amazonaws.com -u my_username -p db_name > /home/username/db_backup_name.sql

-p表示您将输入一个密码,它与db_名称无关。输入命令后,系统将提示您输入密码。输入并按Enter键。


在Windows上,需要指定mysqldump.exe所在的mysql bin。

1
2
3
cd C:\xampp\mysql\bin

mysqldump -u[username] -p[password] --all-databases > C:\localhost.sql

将其保存到文本文件中,如backup.cmd


转到mysql安装目录,从中打开cmd。然后执行下面的命令以获取数据库的备份。

1
mysqldump -u root -p --add-drop-database --databases db> C:\db-dontdelete\db.sql


打开命令提示符,直接键入此命令。不要进入mysql然后键入这个命令。

1
mysqldump -u [uname] -p[pass] db_name > db_backup.sql


如果运行的MySQL不是默认端口:

1
mysqldump.exe -u username -p -P PORT_NO database > backup.sql

只要在命令中键入mysqldumpmysqldump --help,就会显示how to use

这是我的命令结果

1
2
3
4
5
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqldump
Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help

用这个如果数据库名为archiedb,用这个mysql-p--数据库存档b>/home/database_backup.sql

假设这是Linux,请选择备份文件的保存位置。