簡體   English   中英

從命令行下載 MySQL 轉儲

[英]Downloading MySQL dump from command line

我要離開 Linode,因為我沒有必要的 Linux 系統管理員技能; 在我完成向對新手更友好的服務的過渡之前,我需要下載 MySQL 數據庫的內容。 有沒有辦法從命令行執行此操作?

您可以使用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選項。 它會提示你輸入它而不是記錄它。

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

你必須運行:

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

然后它會要求輸入密碼。

如果從遠程服務器下載,這里是一個簡單的例子:

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

-p 表示您將輸入密碼,它與 db_name 無關。 輸入命令后,系統將提示您輸入密碼。 輸入它並按回車鍵。

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

cd C:\xampp\mysql\bin

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

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

不要進入mysql ,只需打開命令提示符並直接輸入:

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

只需在您的 cmd 中輸入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

轉到 MySQL 安裝目錄並從那里打開 cmd。 然后執行以下命令以獲取數據庫的備份。

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

如果您運行的是默認端口以外的 MySQL:

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

對於那些想在命令行中輸入密碼的人。 這是可能的,但建議在引號內傳遞它,以便特殊字符不會引起任何問題。

mysqldump -h'my.address.amazonaws.com' -u'my_username' -p'password' db_name > /path/backupname.sql

對於某些版本的 MySQL 嘗試。

sudo mysqldump [database name] > db_backup.sql

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:\\

如果您有名為archiedb的數據庫,請使用以下命令:

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

假設這是 Linux,請選擇備份文件的保存位置。

對於 Windows 用戶,您可以轉到 mysql 文件夾運行命令

例如

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

注意:此步驟僅在轉儲您的 MySQL 文件(上面的大多數答案都已解決)之后進行。

它假設您在遠程服務器中有上述轉儲文件,現在您想將其下載到本地計算機。

要將轉儲的.sql文件從遠程服務器下載到本地計算機,請執行

scp -i YOUR_SSH_KEY your_username@IP:name_of_file.sql ./my_local_project_dir
@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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM