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

歡迎訪問 生活随笔!

生活随笔

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

数据库

MySQL学习(5)数据库备份

發布時間:2025/3/8 数据库 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL学习(5)数据库备份 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據庫備份,數據庫為school,素材如下

1.創建student和score表

CREATE? TABLE? student (

id? INT(10)? NOT NULL? UNIQUE? PRIMARY KEY? ,

name? VARCHAR(20)? NOT NULL ,

sex? VARCHAR(4)? ,

birth? YEAR,

department? VARCHAR(20) ,

address? VARCHAR(50)?

);

創建score表。SQL代碼如下:

CREATE? TABLE? score (

id? INT(10)? NOT NULL? UNIQUE? PRIMARY KEY? AUTO_INCREMENT ,

stu_id? INT(10)? NOT NULL ,

c_name? VARCHAR(20) ,

grade? INT(10)

);

2.為student表和score表增加記錄

向student表插入記錄的INSERT語句如下:

INSERT INTO student VALUES( 901,'張老大', '男',1985,'計算機系', '北京市海淀區');

INSERT INTO student VALUES( 902,'張老二', '男',1986,'中文系', '北京市昌平區');

INSERT INTO student VALUES( 903,'張三', '女',1990,'中文系', '湖南省永州市');

INSERT INTO student VALUES( 904,'李四', '男',1990,'英語系', '遼寧省阜新市');

INSERT INTO student VALUES( 905,'王五', '女',1991,'英語系', '福建省廈門市');

INSERT INTO student VALUES( 906,'王六', '男',1988,'計算機系', '湖南省衡陽市');

向score表插入記錄的INSERT語句如下:

INSERT INTO score VALUES(NULL,901, '計算機',98);

INSERT INTO score VALUES(NULL,901, '英語', 80);

INSERT INTO score VALUES(NULL,902, '計算機',65);

INSERT INTO score VALUES(NULL,902, '中文',88);

INSERT INTO score VALUES(NULL,903, '中文',95);

INSERT INTO score VALUES(NULL,904, '計算機',70);

INSERT INTO score VALUES(NULL,904, '英語',92);

INSERT INTO score VALUES(NULL,905, '英語',94);

INSERT INTO score VALUES(NULL,906, '計算機',90);

INSERT INTO score VALUES(NULL,906, '英語',85);

1.備份數據庫school到/backup目錄?

先創建目錄

2.備份MySQL數據庫為帶刪除表的格式,能夠讓該備份覆蓋已有數據庫而不需要手動刪除原有數據庫?

3.直接將MySQL數據庫壓縮備份?

4.備份MySQL數據庫某個(些)表。此例備份student表?

5.同時備份多個MySQL數據庫(其他數據庫素材自行準備)?

db1 為 其他數據庫,這里沒有該數據庫,如果想要實現,則進去mysql自行新建

6.僅僅備份數據庫結構?

7.備份服務器上所有數據庫?

8.還原MySQL數據庫?

刪除數據庫school

創建數據庫school,再繼續恢復。進去mysql,查看數據庫。

9.還原壓縮的MySQL數據庫?

?

10.使用mydumper備份數據庫?

注意事項:這個環境mysql是通過二進制格式安裝,所以在安裝mydumper過程中需要安裝的輔助包不同,但是解決辦法大同小異,就是安裝所需的包。另外我這里并沒有展示mysql中恢復的效果。

1.下載壓縮包

鏈接:https://pan.baidu.com/s/1C8slO4rKuCIvkLfZawnyyg
提取碼:yang

2.將壓縮包添加到系統中去(包很小)

3。解壓

tar xf mydumper-0.9.1.tar.gz -C /usr/local/src/

4.進入解壓的目錄文件

cd /usr/local/src/mydumper-0.9.1/

5.安裝輔助軟件

yum install gcc gcc-c++ make cmake -y

yum install glib2-devel pcre-devel -y

yum install zlib-devel -y

6.?? cmake .??? 測試

7 make make install

8.查看PATH并測試能否正常使用。

echo $PATH

?mydumper --help 測試一下可以用不,有可能會報以下錯誤!

報錯信息:

mydumper: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory

解決辦法:https://www.cnblogs.com/gczheng/p/9323327.html

# locate libmysqlclient.so.20 # ll /usr/local/mysql/lib/ # cp /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib/ # ldconfig # ldd /usr/local/bin/mydumper # mydumper --help

依次輸入以上的命令即可。

再次 ?mydumper --help 試一下

9.實現簡單的數據庫備份。

mydumper -u root -p 123456 -B school -o /mysqlbak

11.使用mydumper恢復數據庫

myloader -u root -p 123456 -B school -o -d /mysqlbak/

恢復完成。

11.使用xtrabackup 備份數據庫?

1.安裝軟件

注意事項:這個環境的mysql是通過rpm方式安裝。

先安裝:yum install mysql-community-libs-compat-5.7.14-1.el7.x86_64.rpm

其次安裝:yum install perl-DBD-MySQL-4.023-6.el7.x86_64.rpm

最后安裝:yum install? percona-xtrabackup-24-2.4.8-1.el7.x86_64.rpm

遵循次序安裝,避免依賴錯誤。

如果出現:需要:libev.so.4()(64bit),則要自行對其升級

解決方法:https://www.laozuo.org/11514.html

wget ftp://rpmfind.net/linux/atrpms/el6-x86_64/atrpms/stable/libev-4.04-2.el6.x86_64.rpm

rpm -ivh libev-4.04-2.el6.x86_64.rpm

升級完成。

安裝完成。

2.備份數據庫

完全備份:

innobackupex -u root -p 123456 /backup/mysql/

備份標簽可自行修改

innobackupex -u root -p 123456 --no-timestamp /backup/mysql/full_$(date +%F)

完全恢復:

innobackupex -u root -p 123456 --apply-lohs full_2021-01-19/

innobackupex -u root -p 123456 --copy-back full_2021-01-19/

可能會需要 rm -rf /var/lib/mysql/*

停止數據庫# systemctl stop mysqld

增加權限:

chown -R mysql.mysql? /var/lib/mysql? 路徑不唯一

啟動服務:

systemctl start mysqld

systemctl enable mysqld

或? systemctl start mysqld

有可能會出現錯誤:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

我們先查詢mysql進程號,然后殺死。

ps -aux | grep mysql

重新啟動服務,大概率就進去了

增量備份:

建立數據庫

create database school DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

建立新表

CREATE TABLE `Student` (`Sno`int(10)?? NOT? NULL? COMMENT'學號',

`Sname`varchar(16) NOT? NULL? COMMENT? '姓名',

`Ssex`char(2) NOT? NULL? COMMENT? '性別',

`Sage`tinyint(2) NOT? NULL? DEFAULT? '0' ? COMMENT'學生年齡',

`Sdept`varchar(16) DEFAULT'NULL'COMMENT'學生所在系別',

PRIMARY? KEY (`Sno`)) ENGINE=InnoDB?? AUTO_INCREMENT=1? DEFAULT? CHARSET=utf8;

插入新數據:

INSERT INTO Student values(0007,'孟非','男',21,'播音主持'),(0008,'許三多','男',31,'影視表演');

備份:

innobackupex --incremental -u root -p 123456 --no-timestamp /backup/mysql/incr_1 --incremental-basedir=/backup/mysql/full_2021-01-19/

要注意上一次備份路徑的不同

我們再一次插入數據,再備份一次

INSERT? INTO Student values(0009,'張藝謀','男',61,'導演專業'),(0010,'徐靜蕾','女',36,'導演專業');

innobackupex --incremental -u root -p 123456 --no-timestamp /backup/mysql/incr_2 --incremental-basedir=/backup/mysql/incr_1/

首先恢復全備

innobackupex -u root -p 123456 --apply-log --redo-only /backup/mysql/full_2021-01-19/??? 全備是空的,沒有任何數據

恢復第一次增量備份

innobackupex -u root -p 123456 --apply-log --redo-only /backup/mysql/full_2021-01-19/ --incremental-dir=/backup/mysql/incr_1

恢復第二次增量備份

innobackupex -u root -p 123456 --apply-log --redo-only /backup/mysql/full_2021-01-19/ --incremental-dir=/backup/mysql/incr_2

停止數據庫

systemctl stop mysql

rm -rf /var/lib/mysql/*

innobackupex -u root -p 123456 --copy-back? --redo-only /backup/mysql/full_2021-01-19/

添加權限:

chown -R mysql.mysql /var/lib/mysql

啟動服務:

systemctl start mysqld

systemctl enable mysqld

或 systemctl start mysqld

有可能會出現錯誤:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

我們先查詢mysql進程號,然后殺死。

ps -aux | grep mysql

重新啟動服務,大概率就進去了

12.在另外的數據庫服務器上還原xtrabackup 備份?

有待完善。

?

?

總結

以上是生活随笔為你收集整理的MySQL学习(5)数据库备份的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。