mysql的資料備份和恢復

2021-07-08 22:00:30 字數 1471 閱讀 6554

一,資料備份

mysqldump是mysql提供的乙個很有用的資料庫備份工具。mysqldump執行時,可以將資料庫備份成乙個文字檔案,該檔案中實際包括了多個create和insert語句,

使用這些語句 可以重新建立表和插入語句。

mysqldump -u user -h host -ppassword dbname [tbname,[tbname...]]>filename.sql

user表示使用者名稱;host表示登入使用者的主機名稱;password為登入密碼;dbname為要備份的資料庫名稱;tbname為dbname資料庫中需要備份的資料表,可以指定

多個需要備份的表;右箭頭符號「>」告訴 mysqldump將備份資料表的定義和資料寫入備份檔案;filename.sql為備份檔案的名稱。

檔案開頭,使用了set語句,把系統變數的值賦給使用者自定義變數,以確保恢復資料時,系統變數和原來備份時的變數相同;檔案的開頭和結尾的set語句剛好相反的操作。

備份檔案中的「--」字元開頭的行為注釋語句;以「/*!」開頭、以「*/」結尾的語句為可執行mysql注釋,這些語句可以被mysql執行,在其他資料庫是被注釋掉的, 

這樣做提高了資料庫的可移植性。

還有一些語句以數字開頭,這個數字是版本號,說明這些語句只能用指定版本或比該版本高的情況下才能執行。如:40101是4.01.01版本。

語法:mysqldump -u user -h host -p --databases [dbname,[dbname...]]>filename.sql

使用--databases引數之後,必須指定至少乙個資料庫的名稱,多個資料庫的時候使用空格隔開。

二,資料恢復

語法:mysql -u username -p  [dbname] < filename.sql

登入到mysql中,選中資料庫,用source  需要匯入的資料庫檔案(絕對路徑)。

注意:使用mysqldump備份整個資料庫成功,把錶和資料庫都刪除了,但是使用備份檔案卻不能恢復檔案。

原因:出現這種情況,是因為備份的時候沒有指定--databases引數。預設情況下,如果只指定了資料庫名稱,mysqldump備份的是資料庫中的所有表,

而不包含資料庫的建立語句,所以需要先建立資料庫,然後在恢復。

三,資料庫遷移

如:從abc.com遷移到bcd.com主機上。

mysqldump -h abc.com -u user -ppassword dbname | mysql -h bcd.com -u root -ppassword 

mysqldump 匯入資料直接通過管道符「|」,傳給mysql命令倒入主機bcd.com資料庫中,dbname為需要遷移的資料庫名稱,如果要遷移全部的資料庫,可以使用

--all-databases。

字符集可能不相同,需要更改字符集

不同資料庫的架構不一樣,需要充分了解架構在遷移。如:mysql充分支援sql語句,但是windows server sql 是支援t-sql的。

mysql備份和恢復 mysql備份和恢復

目標 備份和恢復的3種方法,掌握mysqldump命令匯出資料,source命令匯入資料 備份必要性 重要資料不丟失 資料轉移 mysqldump客戶端 作用 轉儲資料庫 搜尋資料庫進行備份 將資料轉移到另乙個sql伺服器 不一定是mysql伺服器 mysqldump h 主機名 u使用者名稱 p ...

mysql資料備份和恢復

u指定使用者 p指定密碼 databases 指定要備份的庫,多個庫以空格分隔,也可以指定 all databases引數來備份全部的資料庫 update t user set age 35 where id 4 刪除資料忘記加條件 no defaults 忽略預設值 set charset utf...

mysql 的資料的備份和恢復

mysql的資料備份方式 物理備份的缺點 實際案例 1.root host50 mysqldump u root p123456 a bakdir alldb.sql 這樣備份可能會出現亂碼現象 1.root host50 mysqldump u root default character set...