2012-03-13 77 views
2

我需要從遠程計算機上的mysql安裝通過SSH複製到我的本地計算機mysql的整個數據庫。通過SSH檢索mysql數據庫

我知道SSH和本地和遠程MYSQL管理用戶和密碼。

這是否足夠的信息,它是如何完成的?

+0

你知道如何在本地複製數據庫嗎? – 2012-03-13 19:38:40

+0

我敢肯定我可以找出... – 2012-03-13 19:39:55

回答

4

要讀這裏:從http://www.cyberciti.biz/tips/howto-copy-mysql-database-remote-server.html修改

- 修改,因爲我更喜歡使用.sql作爲擴展SQL文件:

通常你運行的mysqldump創建一個數據庫複製和備份作爲 如下:

$的mysqldump -u用戶-p數據庫名稱> DB-名.sql

複製DB-name.out文件使用SFTP/SSH遠程MySQL服務器:

$ SCP DB-名.sql [email protected]:/備份

恢復遠程服務器數據庫(超過ssh登錄):

$ MySQL的用戶-u -p DB-名<分貝-名.sql

基本上你將使用mysqldump生成數據庫的轉儲,將其複製到本地機器上,然後通過管道將內容轉換成mysql再生DB。

您可以自己複製數據庫文件,而不是使用mysqldump,但前提是您可以關閉遠程計算機上的MySQL服務。

+1

我認爲你應該編輯這個答案來包含正確的答案,incase鏈接去死 – 2012-03-13 19:50:10

+1

@MildFuzz好的。無論如何,這是谷歌搜索「將mysql數據庫從一臺服務器複製到另一臺服務器」的第一個結果。 – 2012-03-13 20:36:27

0

我會推薦的Xtrabackup工具。它支持通過SSH進行熱複製數據,並且具有優秀的文檔。與使用mysqldump不同,這將複製MySQL實例的所有元素,包括用戶權限,觸發器,複製等等。

0
  1. SSH連接遠程機器
  2. 使數據庫using mysqldump
  3. 傳輸文件到本地機器using scp
  4. 的備份將數據庫恢復到本地的MySQL
5

這將傾遠程數據庫通過pipes

ssh mysql-server "mysqldump --all-databases --quote-names --opt --hex-blob --add-drop-database" | mysql

你應該採取有關用戶護理mysql.users

此外,爲了避免輸入用戶名和密碼的mysqldump和MySQL在本地和遠程主機,您可以創建一個文件~/.my.cnf

[mysql] 
user = dba 
password = foobar 

[mysqldump] 
user = dba 
password = foobar 

http://dev.mysql.com/doc/refman/5.1/en/option-files.html

9

從遠程服務器到本地計算機

ssh {ssh.user}@{remote_host} \ 
'mysqldump -u {remote_dbuser} --password={remote_dbpassword} 
{remote_dbname} | bzip2 -c' \ | bunzip2 -dc | mysql -u {local_dbuser} 
--password={local_dbpassword} -D {local_dbname} 
+0

我唯一的問題是你有ssh在bzip2流上運行一個gzip文件......把'-C-c標誌放到ssh可能會更好。 – 2015-02-23 18:56:25

+1

您爲什麼要將密碼作爲命令行參數傳遞?任何可以在該機器上運行ps的人都可以看到密碼。 – 2015-09-26 17:27:30