从命令行下载MySQL转储

时间:2012-11-21 00:45:15

标签: mysql command-line command-line-arguments linode

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

16 个答案:

答案 0 :(得分:548)

您可以使用mysqldump命令行功能完成此操作。

例如:

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

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

如果是所有数据库,那么:

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

如果是DB中的特定表,那么:

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

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

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

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

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

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

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

答案 1 :(得分:15)

mysqldump正是您要找的。

答案 2 :(得分:9)

在mysql的最新版本中,至少在我的版本中,你不能直接在命令中输入你的传递。

你必须跑:

_id

然后会要求输入密码。

答案 3 :(得分:4)

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

cd C:\xampp\mysql\bin

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

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

答案 4 :(得分:4)

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

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

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

答案 5 :(得分:2)

对于那些想要在命令行中输入密码的用户。可以但建议将其传递给引号,以使特殊字符不会引起任何问题。

fun <- function(X){
  sp <- strsplit(as.character(X[[1]]), "\\.")
  m <- max(nchar(sapply(sp, '[[', 1)))
  n <- max(nchar(sapply(sp, '[[', 2)))

  formatC(as.numeric(as.character(X[[2]])),
          digits = n, width = m + n + 1, 
          format = "f", flag = "0")
}

fun(df)
#[1] "0023.30" "0023.00" "2323.23"

答案 6 :(得分:1)

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

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

答案 7 :(得分:1)

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

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

答案 8 :(得分:0)

只需在命令中输入mysqldumpmysqldump --help即可显示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

答案 9 :(得分:0)

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

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

答案 10 :(得分:0)

对于某些版本的 MySQL 尝试。

sudo mysqldump [database name] > db_backup.sql

答案 11 :(得分:0)

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

<块引用>

Program Files\MySQL\MySQL Server 8.0\bin

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

第 2 步:然后在 CMD 中输入 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

第 3 步:然后输入此命令

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

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

答案 12 :(得分:-1)

使用它 如果您的数据库名为archiedb, 用这个 mysql -p --databases archiedb&gt; /home/database_backup.sql

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

答案 13 :(得分:-1)

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

例如

cd c:\wamp64\bin\mysql\mysql5.7.26\bin
mysqldump -u root -p databasename > dbname_dump.sql

答案 14 :(得分:-1)

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

它假定您在远程服务器中具有所述转储文件,现在您要将其转存到本地计算机中。

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

scp -i YOUR_SSH_KEY your_username@IP:name_of_file.sql ./my_local_project_dir

答案 15 :(得分:-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;