2015-06-16 58 views
0

我需要備份我的MySQL表。我可以通過SSH以root身份登錄。我所有的桌子都在Plesk控制面板下。MySQL通過SSH備份SQL表和數據

mysql -uadmin -p`cat /etc/psa/.psa.shadow` 

這會給我SQL提示。

然後我必須做的: SHOW DATABASES 使用DBNAME SHOW TABLES

SELECT * INFO OUTFILE /tmp/filename.csv FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
FROM tablename; 

這是非常耗時的過程,以保存每個數據庫以csv文件上的每個表。我仍然無法將模式文件備份爲.sql文件。

mysql -uadmin -p`cat /etc/psa/.psa.shadow` -e "SELECT * from tablename" databasename | sed 's/\t/","/g;s/^/"/;s/$/"/' > /tmp/databasename_tablename.csv 

將無法​​生成文件生成。我試過mysqldump,但我不知道每個數據庫的每個用戶名和密碼。

如果有人可以提供一個shell腳本來轉儲所有的數據庫表,並且架構會很好。非常感激。

+0

你知道'mysqldump',對吧? – lcd047

+1

備份到csv不是備份。 csv是一種基於文本的格式,你會從數據庫中丟失各種東西,特別是索引/主鍵設置。如果您正在進行備份,那麼執行備份的用戶應該擁有全局權限...... –

回答

-1

因爲妳備份的傢伙,有足夠的憑據創建一個backupGuy用戶執行-u -p執行對所有數據庫的

使用任務mysqldump

讓我們假設說你非技術老闆不得不坐下來觀看你現在忍受的東西來備份東西。我敢打賭,她的第一反應是,「對於皮特的愛會有人請運行

CREATE USER 'backupGuy'@'192.168.2.7' IDENTIFIED BY 'my_password'; 

GRANT ALL PRIVILEGES ON *.* TO 'backupGuy'@'192.168.2.7'; 

最終報價

你現在有烤的數據和架構。

的mysqldump支持傾出與

--routines --triggers 選項存儲過程/觸發器/功能

考慮你的鎖定問題與任何方法