標籤:
mysql資料備份與還原
-
-
- mysql資料備份與還原
- 資料備份
- mysqldump備份
- 直接複製這個資料庫目錄
- mysqlhotcopy工具快速備份
- 資料還原
- mysql命令還原
- 使用source 命令匯入備份sql檔案
- 使用直接複製到資料目錄的方法
- mysqlhotcopy快速恢複
資料備份mysqldump備份
mysqldump備份的基本文法格式如下:
mysqldump -u user -h host -p password dbname[tbname,[tbname...]] > filename.sql
mysqldump -u root -p booksDB > /Users/frankstar/Desktop/booksDB_20160510.sql
輸入密碼後,案頭即可看見備份的資料庫檔案,檔案開頭是mysqldump工具的版本號碼,然後是備份賬戶的名稱與主機資訊,以及資料庫的名稱,伺服器的版本號碼等。下面是SET語句,主要是涉及恢複時資料庫的系統變數值,最後幾行使用SET語句恢複伺服器系統變數原來的值。
mysqldump -u root -p booksDB books > /Users/frankstar/Desktop/books_20160510.sql
mysqldump -u root -p --databases booksDB JavaStudy > /Users/frankstar/Desktop/bookDB_JavaStudy_20160510.sql
mysqldump -u root -p --all-databases > /Users/frankstar/Desktop/allDatabases_20160510.sql
提示:如果資料庫中表都是MyISAM表,可考慮使用mysqlhotcopy,提高效率。
直接複製這個資料庫目錄
可以直接複製資料庫的儲存目錄和檔案進行備份。這個方法對Innodb儲存引擎的表不適合,同時還要求資料庫版本要一致,否則可能出現不相容。首先備份前需要進行LOCK TABLES操作,然後執行FLUSH TABLES,複製資料庫檔案時應該允許使用者查詢,需要FLUSH TABLES語句來確保開始備份前將所有的啟用索引頁寫入到硬碟。最好的辦法是停止服務進行複製。
mysqlhotcopy工具快速備份
mysqlhotcopy必須要可以訪問備份的資料表檔案,具有表的SELECT、RELOAD、LOCK TABLES等許可權,同時它只適用於MyISAM和ARCHIVE儲存引擎的表。
文法格式如下:
mysqlhotcopy -u root -p JavaStudy /Users/frankstar/Desktop/JavaStudy
它只是將表所在目錄複寫到另一個目錄下,類似直接的複製cp/scp來備份資料庫。
資料還原mysql命令還原
文法格式如下:
mysql -u root -p booksDB < /Users/frankstar/Desktop/booksDB_20160510.sql
提示:首先資料庫中要有這個還原的資料庫,即使是空的。
使用source 命令匯入備份sql檔案
首先登陸到伺服器上,使用如下文法:
#source filename;mysql> use booksDB ;mysql> source /Users/frankstar/Desktop/booksDB_20160510.sql
使用直接複製到資料目錄的方法
將之前通過複本備份資料庫的資料目錄與檔案複製到mysql的資料目錄下實現還原,這種方法要求資料庫的主要版本號需要相同,同時要求是MyISAM表,同時需要停止資料庫服務以及更改資料檔案的屬主與屬組為mysql
mysqlhotcopy快速恢複
與直接複製到資料目錄的方法類似,也需要停止服務,更改資料檔案的屬主和屬組,如下:
chown -R mysql:mysql /var/lib/mysql/db_name
複製文法:
cp -R /Users/frankstar/Desktop/JavaStudy /usr/local/var/mysql/JavaStudy
mysql資料備份與還原