我需要從遠程計算機上的mysql安裝通過SSH複製到我的本地計算機mysql的整個數據庫。通過SSH檢索mysql數據庫
我知道SSH和本地和遠程MYSQL管理用戶和密碼。
這是否足夠的信息,它是如何完成的?
我需要從遠程計算機上的mysql安裝通過SSH複製到我的本地計算機mysql的整個數據庫。通過SSH檢索mysql數據庫
我知道SSH和本地和遠程MYSQL管理用戶和密碼。
這是否足夠的信息,它是如何完成的?
要讀這裏:從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服務。
我認爲你應該編輯這個答案來包含正確的答案,incase鏈接去死 – 2012-03-13 19:50:10
@MildFuzz好的。無論如何,這是谷歌搜索「將mysql數據庫從一臺服務器複製到另一臺服務器」的第一個結果。 – 2012-03-13 20:36:27
我會推薦的Xtrabackup工具。它支持通過SSH進行熱複製數據,並且具有優秀的文檔。與使用mysqldump不同,這將複製MySQL實例的所有元素,包括用戶權限,觸發器,複製等等。
這將傾遠程數據庫通過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
從遠程服務器到本地計算機
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}
我唯一的問題是你有ssh在bzip2流上運行一個gzip文件......把'-C-c標誌放到ssh可能會更好。 – 2015-02-23 18:56:25
您爲什麼要將密碼作爲命令行參數傳遞?任何可以在該機器上運行ps的人都可以看到密碼。 – 2015-09-26 17:27:30
你知道如何在本地複製數據庫嗎? – 2012-03-13 19:38:40
我敢肯定我可以找出... – 2012-03-13 19:39:55