2013-10-23 65 views
16

我有一個MySQL數據庫存在於遠程服務器上,我只有sql連接privilage,我沒有FTP訪問服務器,我需要做一個完整的數據庫轉儲,我已經嘗試mysqldump,但問題是它是在服務器上創建輸出,因爲我沒有FTP我無法從服務器獲得輸出,我該如何做一個乾淨的備份,並獲得我的本地機器轉儲? (當然,備份應該在我的本地機器恢復)如何備份遠程服務器上的MySQL數據庫

感謝 史蒂芬

+0

我不明白這個問題。 'mysqldump'將轉儲寫入標準輸出,當您重定向它時,它會轉到本地主機,而不是服務器。 – Barmar

+0

運行mysqldump我需要先登錄到服務器,我沒有privilage,我有什麼只是一個sql連接到Mysql服務器 –

+2

'mysqldump'需要'--host'選項來訪問遠程服務器,就像'mysql'命令一樣。 – Barmar

回答

21

可以作爲一個選項,以mysqldump指定服務器名稱:

mysqldump --host servername dbname > dbname.sql 
+0

我用過很多次,但總是在想 - 這不是一個可怕的漏洞嗎?我的意思是,任何具有主機和db名稱的人都可以複製整個數據庫而不需要任何密碼? –

+6

它像檢查其他任何使用'mysql'一樣檢查權限。 – Barmar

2

可以使用MySQL的工作臺http://www.mysql.com/products/workbench/ ,它可以通過用戶友好的界面直接備份到本地文件夾

+2

而且,如果您只有SSH訪問服務器,Workbench也可以工作。它在Ubuntu上可用:'sudo apt-get install mysql-workbench'。 –

0

我使用SQLyog進行此操作,我們可以連接到遠程服務器並使用此工具進行備份。

0

如果服務器承認PHP,則可以上傳並嘗試Adminer。我喜歡它作爲PHPMyAdmin替代品,您可以使用它創建備份!

18
mysqldump --host hostaddress -P portnumber -u username -ppassword dbname > dbname.sql 

通常的MySQL遠程端口爲3306。下面是一個例子:

mysqldump --host 192.168.1.15 -P 3306 -u dev -pmjQ9Y mydb > mydb.sql 
+3

一個問題 - 確保沒有空格後的-p密碼 – jpwynn

+0

@jpwynn我想知道爲什麼會這樣嗎? –

+0

man mysqldump:...在命令行中指定密碼應該被認爲是不安全的... https://dev.mysql.com/doc/refman/5.7/en/password-security-user.html – alditis

0
mysqldump.exe

鎖默認表,因此其他SQL動作轉儲期間是不可能的。沒有鎖定任何表,請使用以下語法來備份完整的遠程數據庫,並在本地機器上傾倒的一切:

mysqldump -u username -p --single-transaction --quick --lock-tables=false -h ipaddress myDB > backup.sql 

變化username到你自己的用戶名,更改ipaddress到遠程的IP地址,並myDB實際你想要備份的數據庫。這會提示你輸入密碼。一旦提供,轉儲開始。

相關問題