我有一個MySQL數據庫存在於遠程服務器上,我只有sql連接privilage,我沒有FTP訪問服務器,我需要做一個完整的數據庫轉儲,我已經嘗試mysqldump,但問題是它是在服務器上創建輸出,因爲我沒有FTP我無法從服務器獲得輸出,我該如何做一個乾淨的備份,並獲得我的本地機器轉儲? (當然,備份應該在我的本地機器恢復)如何備份遠程服務器上的MySQL數據庫
感謝 史蒂芬
我有一個MySQL數據庫存在於遠程服務器上,我只有sql連接privilage,我沒有FTP訪問服務器,我需要做一個完整的數據庫轉儲,我已經嘗試mysqldump,但問題是它是在服務器上創建輸出,因爲我沒有FTP我無法從服務器獲得輸出,我該如何做一個乾淨的備份,並獲得我的本地機器轉儲? (當然,備份應該在我的本地機器恢復)如何備份遠程服務器上的MySQL數據庫
感謝 史蒂芬
可以作爲一個選項,以mysqldump
指定服務器名稱:
mysqldump --host servername dbname > dbname.sql
我用過很多次,但總是在想 - 這不是一個可怕的漏洞嗎?我的意思是,任何具有主機和db名稱的人都可以複製整個數據庫而不需要任何密碼? –
它像檢查其他任何使用'mysql'一樣檢查權限。 – Barmar
可以使用MySQL的工作臺http://www.mysql.com/products/workbench/ ,它可以通過用戶友好的界面直接備份到本地文件夾
而且,如果您只有SSH訪問服務器,Workbench也可以工作。它在Ubuntu上可用:'sudo apt-get install mysql-workbench'。 –
我使用SQLyog進行此操作,我們可以連接到遠程服務器並使用此工具進行備份。
如果服務器承認PHP,則可以上傳並嘗試Adminer。我喜歡它作爲PHPMyAdmin替代品,您可以使用它創建備份!
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
mysqldump.exe
鎖默認表,因此其他SQL動作轉儲期間是不可能的。沒有鎖定任何表,請使用以下語法來備份完整的遠程數據庫,並在本地機器上傾倒的一切:
mysqldump -u username -p --single-transaction --quick --lock-tables=false -h ipaddress myDB > backup.sql
變化username
到你自己的用戶名,更改ipaddress
到遠程的IP地址,並myDB
實際你想要備份的數據庫。這會提示你輸入密碼。一旦提供,轉儲開始。
我不明白這個問題。 'mysqldump'將轉儲寫入標準輸出,當您重定向它時,它會轉到本地主機,而不是服務器。 – Barmar
運行mysqldump我需要先登錄到服務器,我沒有privilage,我有什麼只是一個sql連接到Mysql服務器 –
'mysqldump'需要'--host'選項來訪問遠程服務器,就像'mysql'命令一樣。 – Barmar