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

歡迎訪問 生活随笔!

生活随笔

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

数据库

MySQL完全备份与恢复

發布時間:2024/4/17 数据库 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL完全备份与恢复 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL完全備份與恢復

完全備份:對整個數據庫的備份、數據庫結構和文件結構的備份,保存的是備完成時刻的數據庫,是增量備份的基礎。
mysql數據庫的備份可以采用兩種方式,因為數據庫實際上就是文件,直接打包數據庫文件夾,或者是使用專用備份工具mysqldump都可以進行備份工作。

MySQL完全備份

1.使用tar打包文件夾備份

MySQL的數據庫文件默認都是保存在安裝目錄的data文件夾下面,可以直接保存data文件夾,但是占用的空間較大,可以使用tar打包壓縮進行保存。

(1)數據庫文件很大,可以使用壓縮率較大的xz格式壓縮,默認情況下已有,如果沒有需安裝xz壓縮格式工具。

[root@localhost mysql]# yum install xz -y

(2)對數據庫文件夾/usr/local/mysql/data/進行打包操作。

[root@localhost mysql]# tar Jcvf /opt/mysql-$(date +%F).tar.xz /usr/local/mysql/data/ [root@localhost ~]# cd /opt/ [root@localhost opt]# ls mysql-2018-07-02.tar.xz rh //備份文件//

(3)如果數據庫文件損壞數據丟失,可以解壓縮備份文件,相當于做了數據恢復的工作。

[root@localhost opt]# tar Jxvf /opt/mysql-2018-07-02.tar.xz /usr/local/mysql/data/
2使用mysqldump工具備份

前面介紹的對MySQL整個數據庫目錄壓縮的方式,是備份數據庫中所有的內容。使用mysqldup可以更加靈活地控制備份的內容,比如某幾個表或庫都可以單獨備份。

(1)使用mysqldump命令對庫school中的表info進行備份,備份的文件是/opt/info.sql

[root@localhost opt]# mysqldump -u root -p school info > /opt/info.sql [root@localhost opt]# ls info.sql mysql-2018-07-02.tar.xz

(2)使用mysqldump命令對單個庫進行完全備份,備份文件是/opt/school.sql。

[root@localhost opt]# mysqldump -u root -p school > /opt/school.sql Enter password: //root登錄密碼// [root@localhost opt]# ls info.sql mysql-2018-07-02.tar.xz rh school.sql

(3)使用mysqldump命令對多個庫進行備份,備份文件是/opt/school-mysql.sql。

[root@localhost opt]# mysqldump -u root -p --databases school mysql > /opt/school-mysql.sql [root@localhost opt]# ls info.sql mysql-2018-07-02.tar.xz rh school-mysql.sql school.sql

(4)使用mysqldump命令對所有庫進行完全備份,備份文件是all.sql。

[root@localhost opt]# mysqldump -u root -p --all-databases > /opt/all.sql [root@localhost opt]# ls all.sql info.sql mysql-2018-07-02.tar.xz rh school-mysql.sql school.sql

(5)使用mysqldump命令也可以直接備份表結構,備份文件是/opt/desc-info.sql。

[root@localhost opt]# mysqldump -u roou -p school info > /opt/desc-info.sql [root@localhost opt]# ls all.sql desc-info.sql info.sql mysql-2018-07-02.tar.xz rh school-mysql.sql school.sql

MySQL完全恢復

1.恢復整庫操作
(1)首先對庫school進行備份

[root@localhost opt]# mysqldump -u root -p school > /opt/school.sql

(2)假設數據損壞,刪除數據庫school。

[root@localhost opt]# mysql -u root -p //登錄mysql// Enter password: //登錄密碼// Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 17 Server version: 5.7.17 Source distributionCopyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show databases; //查看所有庫// +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | school | | sys | +--------------------+ 5 rows in set (0.00 sec)mysql> drop database school; //刪除school庫// Query OK, 0 rows affected (0.00 sec)mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec)

(3)不登錄mysql,使用mysql命令恢復庫school。

此時庫school已經被刪除了,需要先創建再進行恢復操作,否則會報錯。

[root@localhost opt]# mysql -u root -p mysql> create database school; //創建庫// Query OK, 1 row affected (0.00 sec) mysql> quit //退出// Bye [root@localhost opt]# mysql -u root -p school < /opt/school.sql //恢復school庫// [root@localhost opt]# mysql -u root -p //登錄mysql數據庫// mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | school | | sys | +--------------------+ 5 rows in set (0.00 sec)

2.使用source命令恢復表
(1)首先對表info進行備份

[root@localhost opt]# mysqldump -u root -p school info > /opt/info.sql

(2)假設數據損壞,刪除數據庫school中的表info。

mysql> use school; //進入school庫// Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -ADatabase changed mysql> show tables; //查看表// +------------------+ | Tables_in_school | +------------------+ | info | +------------------+ 1 row in set (0.00 sec)mysql> select * from info; //查看數據記錄// +----------+-------+ | name | score | +----------+-------+ | zhangsan | 88.00 | | lisi | 70.00 | +----------+-------+ 2 rows in set (0.00 sec)mysql> drop table info; //刪除info表// Query OK, 0 rows affected (0.02 sec)mysql> show tables; Empty set (0.00 sec) //無表//

(3)登錄mysql,使用source命令恢復表。

[root@localhost opt]# mysql -u root -p mysql> use school; //進入庫// mysql> source /opt/info.sql //恢復info表// Query OK, 0 rows affected (0.00 sec) mysql> show tables; +------------------+ | Tables_in_school | +------------------+ | info | +------------------+ 1 row in set (0.00 sec)mysql> select * from info; +----------+-------+ | name | score | +----------+-------+ | zhangsan | 88.00 | | lisi | 70.00 | +----------+-------+ 2 rows in set (0.00 sec)

(4)也可以使用mysql進行恢復

[root@localhost opt]mysqldump -u root -p school info > /opt/school-info.sql //備份// [root@localhost opt]mysql -u root -p school < /opt/school-info.sql //恢復//

轉載于:https://blog.51cto.com/13642258/2135312

總結

以上是生活随笔為你收集整理的MySQL完全备份与恢复的全部內容,希望文章能夠幫你解決所遇到的問題。

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