日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

【学习笔记】MySQL 数据备份与恢复

發(fā)布時間:2025/3/20 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【学习笔记】MySQL 数据备份与恢复 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

數(shù)據(jù)備份與恢復

數(shù)據(jù)備份

系統(tǒng)意外崩潰或者硬件的損壞都可以導致數(shù)據(jù)庫的丟失,因此MySQL管理員應該定期備份數(shù)據(jù)庫,使得在意外情況發(fā)生時,盡可能減少損失。

使用MySQLdump命令備份

MySQLdump命令執(zhí)行時,可以將數(shù)據(jù)庫備份成一個文本文件,該文件中實際包含了多個CREATE和INSERT語句,使用這些語句可以重新創(chuàng)建表和插入數(shù)據(jù)。

語法:

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

user : 用戶名稱

host : 登錄用戶主機名稱

password : 登錄密碼

dbname : 數(shù)據(jù)庫名稱

tbname : 數(shù)據(jù)庫中需要備份的表名稱

> : 告訴MySQLdump將備份數(shù)據(jù)表的定義和數(shù)據(jù)寫入備份文件

filename.sql : 備份文件名稱

比如需要備份testdb數(shù)據(jù)庫中所有的表:

mysqldump -u root -p testdb>C:/backup/testdb20211225.sql

Tip : 需要保證備份路徑下的文件夾存在,否則將會找不到指定路徑而備份失敗。

比如需要備份testdb數(shù)據(jù)庫中dept表:

mysqldump -u root -p testdb dept>C:/backup/testdb20211225.sql

比如需要備份多個數(shù)據(jù)庫,testdb1和testdb2:

mysqldump -u root -p --databases testdb1 testdb2>C:/backup/testdb20211225.sql

Tip :需要使用“--databases”參數(shù),并且多個數(shù)據(jù)庫之間用空格分隔。

比如需要備份系統(tǒng)中所有的數(shù)據(jù)庫:

mysqldump -u root -p --all-databases>C:/backup/testdb20211225.sql

直接復制整個數(shù)據(jù)庫目錄

因為MySQL表保存為文件方式,因此可以直接復制MySQL數(shù)據(jù)庫的存儲目錄及文件進行備份。

在Windows平臺下,默認目錄通常為:

C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 8.0\data

這種方式簡單、快速、有效。要想保持備份的一致性,備份前需要對相關表執(zhí)行LOCK TABLES操作,然后對表執(zhí)行FLUSH TABLES。這樣當復制數(shù)據(jù)庫目錄中的文件時,允許用戶繼續(xù)查詢表。

但是這種方法對InnoDB存儲引擎的表是不適用的,而且這種方法數(shù)據(jù)最好恢復到相同版本的服務器中,否則有可能不兼容。

使用MySQLhotcopy工具備份

MySQLhotcopy是一個Perl腳本。使用LOCK TABLES、FLUSH TABLES和cp或scp來快速備份數(shù)據(jù)庫。它是備份數(shù)據(jù)庫或者單個表最快的途徑,但它只能運行在數(shù)據(jù)庫目錄所在的機器上,并且只能備份MyISAM類型的表。

MySQLhotcopy在UNIX系統(tǒng)中運行。

語法:

mysqlhotcopy db_name_1, ... db_name_n /path/to/new_directory

比如需要備份testdb數(shù)據(jù)庫到/usr/backup目錄:

mysqlhotcopy -u root -p testdb /usr/backup

Tip : 要想執(zhí)行MySQLhotcopy,必須擁有可以訪問備份的表文件權限。

數(shù)據(jù)恢復

通過恢復已經(jīng)備份的數(shù)據(jù)可以盡量減少因為意外情況導致數(shù)據(jù)丟失的損失。

使用MySQL命令恢復

對于已經(jīng)備份的包含CREATE和INSERT語句的文本文件,可以使用命令導入到數(shù)據(jù)庫中。

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

比如將C:/backup/testdb20211225.sql文件中的備份導入到數(shù)據(jù)庫中:

mysql -u root -p testdb < C:/backup/testdb20211225.sql

Tip : 必須現(xiàn)在MySQL服務器中創(chuàng)建testdb數(shù)據(jù)庫。

如果已經(jīng)登錄MySQl服務器,還可以使用source命令導入sql文件。

語法:source filename

比如需要將C:/backup/testdb20211225.sql文件中的備份導入到數(shù)據(jù)庫中:

use testdb ;

source C:/backup/testdb20211225.sql;

直接復制到數(shù)據(jù)庫目錄

如果數(shù)據(jù)庫通過復制數(shù)據(jù)庫文件備份,那么可以直接復制備份的文件到MySQL數(shù)據(jù)目錄下實現(xiàn)恢復。主要注意的是,保存?zhèn)浞輸?shù)據(jù)的數(shù)據(jù)庫和待恢復的數(shù)據(jù)庫服務器的主版本號必須相同。而且該方式僅僅對MyISAM引擎的表有效,對于InnoDB存儲引擎的表不可用。

執(zhí)行恢復以前關閉MySQL服務器,將備份的文件或者目錄覆蓋MySQL的data目錄,然后重啟MySQL服務。

使用MySQLhotcopy快速恢復

在MySQL服務器停止運行時,將備份的數(shù)據(jù)庫文件復制MySQL存放數(shù)據(jù)的位置(MySQL的data文件夾),重啟MySQL服務即可。

比如需要從MySQLhotcopy復制的備份恢復數(shù)據(jù)庫:

cp -R /usr/backup/testdb usr/local/mysql/data

?

總結

以上是生活随笔為你收集整理的【学习笔记】MySQL 数据备份与恢复的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。