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


当前回答

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

你必须跑:

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

然后它会要求输入密码。

其他回答

@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;

您可以使用mysqldump命令行函数来实现这一点。

例如:

如果它是一个完整的DB,那么:

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

如果都是db,那么:

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

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

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

你甚至可以使用gzip自动压缩输出(如果你的DB非常大):

   $ 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文件放到运行命令行的文件夹中。 EDIT:更新以避免在CLI命令中包含密码,使用不带密码的-p选项。它会提示你,而不是记录它。

如果你有一个名为archiedb的数据库,使用这个:

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

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

不要进入mysql,只要打开命令提示符,然后直接输入:

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

只需输入mysqldump或mysqldump——cmd中的帮助将显示如何使用

下面是我的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