windows/linux伺服器下mysql備份恢複命令介紹

來源:互聯網
上載者:User

設mysql安裝在c:盤,mysql資料庫的使用者名稱是root,密碼是123456,資料庫名是database_name,在d:盤根目錄下面存放備份資料庫,備份資料庫名字為backup20070713.sql(20070713.sql為備份日期)

備份資料庫:

mysqldump 是採用SQL層級的備份機制,它將資料表導成 SQL 指令檔,在不同的 MySQL 版本之間升級時相對比較合適,這也是最常用的備份方法。

 代碼如下 複製代碼
mysqldump -uroot -p123456 database_name>d:/backup20070713.sql

上面windows/下面為linux

我通常使用以下 SQL 來備份 MyISAM 表:

 代碼如下 複製代碼

/usr/local/mysql/bin/mysqldump -uyejr -pyejr
--default-character-set=utf8 --opt --extended-insert=false
--triggers -R --hex-blob -x db_name > db_name.sql


使用以下 SQL 來備份 Innodb 表:

 代碼如下 複製代碼

/usr/local/mysql/bin/mysqldump -uyejr -pyejr
--default-character-set=utf8 --opt --extended-insert=false
--triggers -R --hex-blob --single-transaction db_name > db_name.sql

另外,如果想要實現線上備份,還可以使用 --master-data 參數來實現,如下:

 代碼如下 複製代碼
/usr/local/mysql/bin/mysqldump -uyejr -pyejr
--default-character-set=utf8 --opt --master-data=1
--single-transaction --flush-logs db_name > db_name.sql

 

恢複資料庫

刪除原有資料庫,建立資料庫,把備份資料庫匯入。

 代碼如下 複製代碼

mysqladmin -uroot -p123456 drop database_name

mysqladmin -uroot -p123456 create database_name

mysql -uroot -p123456 database_name


用 mysqldump 備份出來的檔案是一個可以直接倒入的 SQL 指令碼,有兩種方法可以將資料匯入。

直接用 mysql 用戶端
例如:

 代碼如下 複製代碼
/usr/local/mysql/bin/mysql -uyejr -pyejr db_name < db_name.sql

  

用 SOURCE 文法
其實這不是標準的 SQL 文法,而是 mysql 用戶端提供的功能,例如:

 代碼如下 複製代碼
SOURCE /tmp/db_name.sql;


這裡需要指定檔案的絕對路徑,並且必須是 mysqld 運行使用者(例如 nobody)有許可權讀取的檔案。

註:在匯入備份資料庫前,database_name如果沒有,是需要建立的;而且與backup20070713.sql中資料庫名是一樣的才能匯入。

mysqldump(資料匯出工具)

  mysqldump options db_name[table_name]//備份單個資料庫
  mysqldump 選項 --database database-name1 [databases-name2]....//備份指定的資料庫一個或者多個
  mysqldump 選項 --all-database //備份所有的資料庫
  連結選項:
  -u :指定使用者名稱
   -p:指定密碼
   -h:指定伺服器ip或者網域名稱
   -P(大寫):指定連接埠
eg:/usr/bin/mysqldump -u root -h 202.194.132.237 -P 3306 -p BBS user>/home/wuxiaoxiao/user.txt
輸出內容選項:
--add-drop-database:每個資料庫建立語句之前加上drop database語句
--add-drop-table:每個表建立語句之前加上drop table語句
-n:不包含資料庫的建立語句
-t:不包含資料表的建立語句
-d:不包含資料
輸出格式選項:
 --compact:使輸出結果簡潔
 -c --compact-insert:使輸出檔案中的insert語句包含欄位名
 -T:將資料庫表中的資料備份為單純的資料文本和建表sql倆個檔案
   --fields-terminated-by=name(域分割符)
   --fields-enclosed-by=name(域引用符)
   --fields-optionally-enclosed-by=name(域可選引用符)
   --fields-escaped-by=name(轉移字元)
eg:/usr/bin/mysqldump -u root -h 202.194.132.237 -P 3306 -p BBS user -T ./bak
字元集選項:
--default-character-set=name:設定匯出的用戶端字元集
eg:mysql -u root -p --compact --default-character-set=utf8 BBS user > test.txt

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.