程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql數據庫的備份和還原的總結

mysql數據庫的備份和還原的總結

編輯:MySQL綜合教程

平時對數據庫的操作基本是對數據表以及表中的數據操作,對數據庫的備份和還原用到的較少,今天在此總結下,當作是一個自我學習的過程。

1,數據庫的備份

用mysqldump命令,原因:該工具在多個存儲引擎上使用,此外其備份的數據庫文件只要進行簡單的修改便可在sql server和sybase上使用。

格式:mysqldump -h localhost(填數據所在的主機名) -u root(用戶名) -p db_name(要備份的數據庫名)>path(要備份的地址)

例如:打開dos窗輸入 mysqldump -u root -p db_name>E:/11.sql;

如果只想單獨備份數據庫中的某個表就在數據庫名後加表名就好

例如備份db_name數據庫中的table1表:mysqldump -u root -p db_nametable1>E:/11.sql;

如果想備份多個數據庫,則加入關鍵字--databases 如下:mysqldump -u root -p--databases db_name1db_name2>E:/db.sql; 實現了對db_name1和數據庫db_name2的備份。

此外需要特別注意的一點時,不加--databases對數據庫進行備份後,如過被備份的數據庫直接被刪除後,無法直接用備份進行恢復,因為 “mysqldump -u root -p db_name>E:/db.sql”只備份了db_name數據庫下的所有表,文件中不包括創建數據庫的CREATE DATABASE語句,因此如果把db_name刪了使用db.sql還原時會出現:“No database selected”的錯誤信息,因此在還原前必須先創建db_name數據庫,並用use db_name選中。或者在備份時,直接用mysqldump -u root -p --databases db_name>db.sql,這樣不僅備份了所用數據庫下的表結構,而且包括了創建數據庫的語句。

2,數據的還原

如果沒有登錄mysql數據庫,mysql -h localhost -u root -p db_name(數據庫名)<filename.sql(備份文件名)

如果已經登錄了mysql裡面則通過source語句還原:先在mysql中選擇要還原的數據庫,即use db_name; 然後執行source filename.sql(文件路徑名)

3,表的導入導出

mysql關鍵的操作是對數據操作,而數據是存儲在表中,因此對數據的直接操作是通過表的導入導出實現的,表的導入與導出有多種方法下面我們就總結一下:

一、已登錄mysql,用select...into outfile導出文件,用load data infile導入文件

格式:use db_name 進入某個數據庫

select * from table_name into outfile "filepath.txt"; 將表table_name導出filepath路徑下的文件中

load data infile "filepath.txt" into table table_name; 將filepath.txt的數據導入到表table_name中;

上面這兩條語句都有一些可選項[options]來規定導入、導出時數據的格式,如:

select * from table_name into outfile "filepath.txt"

fields

terminated by ','

enclosed by ' \" '

escaped by ' \' '

lines

terminated by '\r\n'

staring by '>'

fields下的terminated by ','表示導出的數據字段之間用,相隔,enclosed by ' \" ' 表示每個字段被雙引號包圍,escaped by ' \' '表示將轉義字符定義為單引號。lines下的terminated by '\r\n'表示每行記錄以回車換行符結尾,staring by '>'表示每一行以‘ > ’字符開始。例子如下:

不加option的導出數據格式為

1Tale of AAA Dickes28 1995novel 112EmmaT Jane lura40 1993drama 22

加了如上option的導出數據格式為

> "1","Tale of AAA",...
> "2","EmmaT",...

 

二 不登錄mysql

用mysqldump命令導出文件,感覺跟備份數據庫相似,命令如下:

mysqldump -T path dbname table_name -u root -p

path為導出的路徑,dbname為數據庫名 table_name為數據庫中的表名。

也可像select ... into outfile 一樣加option可選項如下:

mysqldump -T path dbname table_name -u root -p --fields-terminated-by=,--fields-enclosed-by=\"--fields-escaped-by=?--lines-terminated-by=\r\n

用mysql命令導出數據庫

mysql -u root -p --execute="select 語句" dbname>filename.txt

同樣可以用mysql導出html格式的數據,使用--html選項即可

mysql -u root -p --html --execute="select 語句" dbname>filename.html

mysql -u root -p --xml --execute="select 語句" dbname>filename.xml

用mysqlimport導入文本文件

mysqlimport -u root -p db_name filename.txt

也可以帶有可選參數如mysqldump的參數。

mysqlimport -u root -p db_name filename.txt --fields-terminated-by=,--fields-enclosed-by=\"--fields-escaped-by=?--lines-terminated-by=\r\n

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved