日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

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

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

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

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

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

使用MySQLdump命令備份

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

語法:

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

user : 用戶名稱

host : 登錄用戶主機(jī)名稱

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 : 需要保證備份路徑下的文件夾存在,否則將會(huì)找不到指定路徑而備份失敗。

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

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

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

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

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

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

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

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

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

在Windows平臺下,默認(rèn)目錄通常為:

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

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

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

使用MySQLhotcopy工具備份

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

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

語法:

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,必須擁有可以訪問備份的表文件權(quán)限。

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

通過恢復(fù)已經(jīng)備份的數(shù)據(jù)可以盡量減少因?yàn)橐馔馇闆r導(dǎo)致數(shù)據(jù)丟失的損失。

使用MySQL命令恢復(fù)

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

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

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

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

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

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

語法:source filename

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

use testdb ;

source C:/backup/testdb20211225.sql;

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

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

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

使用MySQLhotcopy快速恢復(fù)

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

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

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

?

總結(jié)

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

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