350

我要离开 Linode 是因为我没有必要的 Linux 系统管理员技能;在完成向更适合新手的服务的过渡之前,我需要下载 MySQL 数据库的内容。有没有办法可以从命令行执行此操作?

4

15 回答 15

747

您可以使用mysqldump命令行函数完成此操作。

例如:

如果它是一个完整的数据库,那么:

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

如果都是数据库,那么:

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

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

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

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

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

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

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

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

编辑:更新以避免在 CLI 命令中包含密码,请使用-p不带密码的选项。它会提示您而不是记录它。

于 2012-11-21T00:52:11.150 回答
16

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

你必须运行:

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

然后它会要求输入密码。

于 2016-10-01T09:28:55.770 回答
11

如果从远程服务器下载,这里是一个简单的例子:

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

-p 表示您将输入密码,它与 db_name 无关。输入命令后,系统会提示您输入密码。输入它并按回车键。

于 2016-09-21T18:32:03.403 回答
6

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

cd C:\xampp\mysql\bin

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

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

于 2016-01-26T07:55:21.310 回答
3

只需键入mysqldumpmysqldump --help在您的 cmd 中将显示how to use

这是我的cmd 结果

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
于 2014-03-27T06:42:02.383 回答
3

不要进去mysql,只需打开命令提示符并直接输入:

mysqldump -u [uname] -p[pass] db_name > db_backup.sql
于 2017-07-21T04:31:26.823 回答
3

转到 MySQL 安装目录并从那里打开 cmd。然后执行以下命令以获取数据库的备份。

mysqldump -u root -p --add-drop-database --databases db> C:\db-dontdelete\db.sql
于 2017-07-27T13:09:17.837 回答
2

如果您正在运行默认端口以外的 MySQL:

mysqldump.exe -u username -p -P PORT_NO database > backup.sql
于 2014-07-25T09:39:44.027 回答
2

对于那些想在命令行中输入密码的人。可以,但建议在引号内传递它,这样特殊字符就不会引起任何问题。

mysqldump -h'my.address.amazonaws.com' -u'my_username' -p'password' db_name > /path/backupname.sql
于 2020-01-27T06:27:08.547 回答
0

如果您有名为 的数据库archiedb,请使用以下命令:

mysql -p <password for the database> --databases archiedb > /home/database_backup.sql

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

于 2018-05-16T14:17:16.673 回答
0

对于 Windows 用户,您可以转到 mysql 文件夹运行命令

例如

cd c:\wamp64\bin\mysql\mysql5.7.26\bin
mysqldump -u root -p databasename > dbname_dump.sql
于 2019-08-21T16:48:12.223 回答
0

注意:此步骤仅在转储 MySQL 文件之后进行(上面的大多数答案都已解决)。

它假定您在远程服务器中有上述转储文件,现在您想将其下载到本地计算机。

要将转储.sql文件从远程服务器下载到本地计算机,请执行

scp -i YOUR_SSH_KEY your_username@IP:name_of_file.sql ./my_local_project_dir
于 2020-06-09T12:24:19.347 回答
0

对于某些版本的 MySQL 试试。

sudo mysqldump [database name] > db_backup.sql
于 2021-03-13T19:59:11.253 回答
0

mysqldump 是 MySQL 目录中的另一个程序(.exe 文件)

程序文件\MySQL\MySQL 服务器 8.0\bin

第 1 步:首先,您必须转到路径并从文件夹中打开 CMD。

第2步:然后输入mysqldumpCMD


它应该显示如下

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

第 3 步:然后输入此命令

mysqldump -u [user_name] -p [database_name] > D:\db_dump.sql

注意: 您应该为输出文件提供绝对路径。 这里我提供 D:\

于 2021-03-14T10:08:54.010 回答
-1
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
set "datestamp=%YYYY%.%MM%.%DD%.%HH%.%Min%.%Sec%"
set drive=your backup folder
set databaseName=your databasename
set user="your database user"
set password="your database password"
subst Z: "C:\Program Files\7-Zip" 
subst M: "D:\AppServ\MySQL\bin"
set zipFile="%drive%\%databaseName%-%datestamp%.zip"
set sqlFile="%drive%\%databaseName%-%datestamp%.sql"
M:\mysqldump.exe --user=%user% --password=%password% --result-file="%sqlFile%" --databases %databaseName%
@echo Mysql Backup Created
Z:\7z.exe a -tzip "%zipFile%" "%sqlFile%"
@echo File Compress End
del %sqlFile%
@echo Delete mysql file
pause;
于 2020-08-24T13:50:12.500 回答