iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL数据库如何实现备份与恢复方法
  • 804
分享到

MySQL数据库如何实现备份与恢复方法

2024-04-02 19:04:59 804人浏览 薄情痞子
摘要

本篇文章给大家主要讲的是关于Mysql数据库如何实现备份与恢复方法的内容,感兴趣的话就一起来看看这篇文章吧,相信看完mysql数据库如何实现备份与恢复方法对大家多少有点参考价值吧。Mysql数据库的备份与恢

本篇文章给大家主要讲的是关于Mysql数据库如何实现备份与恢复方法的内容,感兴趣的话就一起来看看这篇文章吧,相信看完mysql数据库如何实现备份与恢复方法对大家多少有点参考价值吧。

Mysql数据库的备份与恢复

mysqdump工作原理

         利用mysqldump命令备份数据的过程,实际上就是把数据从mysql库里一逻辑的sql语句的形式直接输出或生成备份的文件的过程。

备份单个数据

mysql数据库自带了一个很好用的备份命令,就是mysqldump基本使用如下

语法:mysqldump -u 用户名 -p 数据库名  > 备份的文件名

1、备份数据并恢复:

mysqldump -uroot -p radius > /opt/mysql_bak.sql

还原数据库

mysql -uroot -p radius </opt/mysql_bak.sql

 

2、指定拉丁字符集备份数据库

mysqldump -uroot -p --default-character-set=latin1 radius > /opt/mysql_bak.sql

还原数据库

mysql -uroot -p radius </opt/mysql_bak.sql

 

3、备份时加参数(-B)     #会在备份时增加创建数据库的连接数据的语句

mysqldump -uroot -p -B radius > /opt/mysql_bak_B.sql

还原数据库

mysql -uroot -p  </opt/mysql_bak_B.sq

 

4、压缩备份(用gzip对备份的数据压缩)

mysqldump -uroot -p -B radius|gzip >/opt/mysq_bak.sql.gz

 

5、查看备份内容

egrep -v "#|\*|--|^$" /opt/mysql_bak.sql

 

root@solin:~# mysql -uroot -p -e "select id,username,is_superuser,last_login from radius.auth_user;"

Enter passWord:

+----+----------+--------------+---------------------+

| id | username | is_superuser | last_login          |

+----+----------+--------------+---------------------+

|  1 | root     |            1 | 2016-11-25 03:26:43 |

|  2 | WeiFei   |            0 | NULL                |

+----+----------+--------------+---------------------+

备份多个库

1、同时备份mysql和radius库

mysqldump -uroot -p -B radius mysql|gzip >/opt/mul.bak.sql.gz

提示:-B

      表示连接多个库,并增加use db和create database db的命令信息

2、备份所有的库(-A备份所有的库)

mysqldump -uroot -p -A -B |gzip >/opt/a.sql.gz

 

3、利用source命令恢复数据库

进入数据库控制台,mysql -uroot -p登陆后

msyql>use 数据库

然后使用source命令,后面参数为数据文件

例:root@solin:/opt# mysql -uroot -p

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 251

Server version: 5.6.28-0solin0.15.04.1 (Solin)

 

Copyright (c) 2000, 2015, 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 |

+--------------------+

1 row in set (0.00 sec)

 

mysql> system ls /opt

a.sql  mysql.sql.gz  radius_t.sql.gz  shop.sql

bak    radius.sql    shop_shop.sql

mysql> source a.sql;

Query OK, 0 rows affected (0.00 sec)

 

Query OK, 0 rows affected (0.00 sec)

 

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

 

Query OK, 0 rows affected (0.00 sec)

 

Query OK, 0 rows affected (0.00 sec)

 

mysql> show database;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL Server version for the right syntax to use near 'database' at line 1

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| radius             |

+--------------------+

3 rows in set (0.00 sec)

 

mysql> \q

Bye

 

分库备份

企业的数据库会有很多库,出问题可能是某一个库,如果在备份时把所有的库备份成一个数据文件的,恢复某一个库时会较麻烦,这是就用到了分库备份。

1、命令行分库备份

root@solin:~# mysql -uroot -p -e "show databases;"|grep -Evi "database|infor|perfor"|sed -r 's#^([a-z].*$)#mysqldump -uroot -p -B \1|gzip >/opt/bak/\1.sql.gz#g'|bash

Enter password:

root@solin:~# ls /opt/bak/

mysql.sql.gz  radius.sql.gz

2、for循环实现分库备份

[root@solin scripts]# cat fenku.sh

#!/bin/sh

for dbname in `mysql -uroot -p'Centos' -e "show databases;"|grep -Evi "database|info|perfor"`

do

    mysqldump -uroot -p'centos' --events -B $dbname|gzip >/opt/bak/${dbname}_bak.sql.gz

done

[root@solin scripts]# sh fenku.sh

[root@solin scripts]# ls /opt/bak/

mysql_bak.sql.gz  solin_gbk_bak.sql.gz  solin_utf8_bak.sql.gz  test_bak.sql.gz

分库备份还原

[root@solin ~]# gzip -d /opt/bak/*

[root@solin ~]# cd /opt/bak/

[root@solin bak]# ls *.sql|sed 's#_bak.sql##g'

mysql

radius

[root@solin bak]# for dbname in `ls *.sql|sed 's#_bak.sql##g'`;do mysql -uroot -pbdyun < ${dbname}_bak.sql;done

Warning: Using a password on the command line interface can be insecure.

Warning: Using a password on the command line interface can be insecure.

[root@solin bak]#

备份表

1、备份单个表

语法:mysqldump -u用户名 -p 数据库名 表名>备份的文件名

例: mysqldump -u root -p radius shop_shop >/opt/shop_shop.sql

查看结果

root@solin:~# ls /opt/

bak  mysql.sql.gz  radius.sql.gz  shop_shop.sql

root@solin:~# egrep -v "#|\*|--|^$" /opt/shop_shop.sql

DROP TABLE IF EXISTS `shop_shop`;

CREATE TABLE `shop_shop` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `shopname` varchar(200) COLLATE utf8_unicode_ci NOT NULL,

  `contract_person_qq_number` varchar(50) COLLATE utf8_unicode_ci NOT NULL,

  `agent` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,

  `url` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,

……

2、备份多个表

语法:mysqldump -u用户名 -p 数据库名 表名1 表名2 >备份的文件名

例: root@solin:~# mysqldump -uroot -p radius shop_shop shop_shop_admins >/opt/shop.sql

Enter password:

root@solin:~# ls /opt/

bak  mysql.sql.gz  radius.sql.gz  shop_shop.sql  shop.sql

root@solin:~# egrep -v "#|\*|--|^$" /opt/shop.sql DROP TABLE IF EXISTS `shop_shop`;

CREATE TABLE `shop_shop` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `shopname` varchar(200) COLLATE utf8_unicode_ci NOT NULL,

  `contract_person_qq_number` varchar(50) COLLATE utf8_unicode_ci NOT NULL,

  `agent` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,

  `url` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,

  `address` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,

……

3、分库分表备份

mysqdump -uroot -p radius test >radius_test.sql

mysqdump -uroot -p radius test1 >radius_test2.sql

……

注:将上述命令放入一个脚本里就是脚本分表备份了,当然你也可以搜索其他更好的备份脚本,恢复时批量恢复多个SQl文件

 

备份数据库表结构和数据

1、mysqldump -d参数只备份表的结构

root@solin:~# mysqldump -uroot -p -B -d radius >/opt/radius_d.sql.gz

Enter password:

root@solin:~# egrep -v "#|\*|--|^$" /opt/radius_d.sql.gz

USE `radius`;

DROP TABLE IF EXISTS `accounting_authconnectionhistory`;

CREATE TABLE `accounting_authconnectionhistory` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `wlanuserip` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,

  `wlanacname` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,

  `wlanacip` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,

  `ssid` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,

……

2、mysqldump -t参数只备份表的数据

例:root@solin:~# mysqldump -uroot -p -B -t radius >/opt/radius_t.sql.gz

Enter password:

root@solin:~# egrep -v "#|\*|--|^$" /opt/radius_t.sql.gz

USE `radius`;

LOCK TABLES `accounting_authconnectionhistory` WRITE;

UNLOCK TABLES;

LOCK TABLES `accounting_authconnectionuseronlinetimelist` WRITE;

UNLOCK TABLES;

LOCK TABLES `accounting_tempertoryalloweduserlist` WRITE;

UNLOCK TABLES;

LOCK TABLES `accounting_userrecord` WRITE;

UNLOCK TABLES;

LOCK TABLES `adminbd_adpullhistory` WRITE;

UNLOCK TABLES;

……

刷新、切割binlog

1、mysqldump -F参数刷新、切割binlog

2、mysqldump --master-data=1参数 找到binlog的文件和位置

mysqldump的关键参数说明

1、-A备份所有库

2、-B指定多个库,增加建表语句和use语句

3、-F刷新binlog日志

4、-d只备份表结构

5、-t只备份表数据

6、-x提交请求定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭--single-transaction 和--lock-tables 选项。

7、-l --lock-tables 锁所有的表为只读

8、--master-data增加binlog日志文件名及对应的位置点

9、--compact去掉注释,适合调试输出(生产环境不用)

10、--singe-transaction 适合innodb事物数据库备份

 

生产场景备份

1、常规备份

myisam备份:

mysqldump -uroot -p -A -B --master-data=2 -x |gzip >/opt/all.sql.gz

 

innodb备份:

mysqldump -uroot -p -A -B --master-data=2 --singe-transaction|gzip >/opt/all.sql.gz

2、专业DBA mysqldump备份演练

MySQL数据库如何实现备份与恢复方法

以上关于MySQL数据库如何实现备份与恢复方法详细内容,对大家有帮助吗?如果想要了解更多相关,可以继续关注我们的数据库板块。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL数据库如何实现备份与恢复方法

本文链接: https://www.lsjlt.com/news/35296.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL数据库如何实现备份与恢复方法
    本篇文章给大家主要讲的是关于MySQL数据库如何实现备份与恢复方法的内容,感兴趣的话就一起来看看这篇文章吧,相信看完MySQL数据库如何实现备份与恢复方法对大家多少有点参考价值吧。MySQL数据库的备份与恢...
    99+
    2022-10-18
  • Mysql数据库实现完整备份与恢复方法
    下面讲讲关于Mysql数据库实现完整备份与恢复方法,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完Mysql数据库实现完整备份与恢复方法这篇文章你一定会有所受益。数据库备份的重要...
    99+
    2022-10-18
  • Mysql数据库的备份与恢复方法
    这篇文章主要介绍“Mysql数据库的备份与恢复方法”,在日常操作中,相信很多人在Mysql数据库的备份与恢复方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mysql数据库...
    99+
    2022-10-18
  • mysql数据备份与恢复实现方法分析
    本文实例讲述了mysql数据备份与恢复实现方法。分享给大家供大家参考,具体如下: 本文内容: 复制文件法 利用mysqldump 利用select into outfile 其它...
    99+
    2022-05-14
    mysql 数据备份 数据恢复
  • MySQL数据库如何备份与恢复
    这篇“MySQL数据库如何备份与恢复”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQ...
    99+
    2022-10-19
  • Mysql数据库备份与恢复
    1 数据备份与恢复2 使用第三方软件进行备份1 数据备份与恢复1.1 数据备份方式物理备份:直接拷贝库或者表对应的文件。cp,tar, ...具有局限性,前提是表的存储引擎为myisam,跨平台性...
    99+
    2022-10-18
  • MySQL如何实现数据备份与恢复
    下面讲讲关于MySQL如何实现数据备份与恢复,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完MySQL如何实现数据备份与恢复这篇文章你一定会有所受益。常见的MySQL管工具mys...
    99+
    2022-10-18
  • innobackupex实现MySQL数据库的备份与恢复
        Xtrabackup是由percona开发的一个开源软件,它是innodb热备工具ibbackup(收费的商业软件)的一个开源替代品。Xtrabackup由个...
    99+
    2022-10-18
  • MySQL数据库备份恢复的方法
    不懂MySQL数据库备份恢复的方法?其实想解决这个问题也不难,下面让小编带着大家一起学习怎么去解决,希望大家阅读完这篇文章后大所收获。数据库的备份#语法: # mysqldump -h 服务器 -u用户名 ...
    99+
    2022-10-18
  • MySQL数据库的备份与恢复
    一、数据备份的重要性 备份的主要目的是灾难恢复。 在生产环境中,数据的安全性至关重要。 任何数据的丢失都可能产生严重的后果。 造成数据丢失的原因: 程序错误人为操作错误运算错误磁盘故障灾难(如火灾、地震)和盗窃 二、数据库备份...
    99+
    2023-10-27
    数据库
  • MySQL数据库中怎么实现备份与恢复
    MySQL数据库中怎么实现备份与恢复,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、数据库备份的一些概念1.造成数据丢失的原...
    99+
    2022-10-18
  • PHP怎么实现MySQL数据库备份与恢复
    这篇“PHP怎么实现MySQL数据库备份与恢复”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“PHP怎么实现MySQL数据库备...
    99+
    2023-07-06
  • navicat实现mysql备份与恢复的方法
    这篇文章主要介绍navicat实现mysql备份与恢复的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!navicat如何实现mysql备份与恢复推荐:navicat使用教程1、查...
    99+
    2022-10-18
  • mysql如何备份与恢复数据
    下文我给大家简单讲讲关于mysql如何备份与恢复数据,大家之前了解过相关类似主题内容吗?感兴趣的话就一起来看看这篇文章吧,相信看完mysql如何备份与恢复数据对大家多少有点帮助吧。mysql物理备份与逻辑备...
    99+
    2022-10-18
  • mysql数据库备份与恢复脚本
    #!/bin/bash#mysql database backup and restore the script# define config variablehost=localhostuser=root...
    99+
    2022-10-18
  • 备份与恢复MySQL数据库的三种方法介绍
    下文给大家带来关于备份与恢复MySQL数据库的三种方法介绍,感兴趣的话就一起来看看这篇文章吧,相信看完备份与恢复MySQL数据库的三种方法介绍对大家多少有点帮助吧。MySQL数据库的备份与恢复的三种方法1....
    99+
    2022-10-18
  • mysql怎么实现数据备份与恢复
    这篇文章主要讲解了mysql怎么实现数据备份与恢复,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。本文内容:复制文件法利用mysqldump利用select into ...
    99+
    2022-10-18
  • MySQL如何实现备份与恢复
    小编给大家分享一下MySQL如何实现备份与恢复,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 实验环境:RHEL5.8 ,SElinux关闭,MySQL是tar包初始化安装版本5.5.2...
    99+
    2022-10-18
  • MySQL数据库备份恢复实现代码
    数据库的备份 #语法: # mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql #示例: #单库备份 mysqldump -uroot -p123 db1 > d...
    99+
    2022-05-26
    MySQL 数据库 备份 恢复
  • MySQL数据库如何实现Percona全量增量备份与恢复
    本文主要给大家简单讲讲MySQL数据库如何实现Percona全量增量备份与恢复,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望MySQL数据库如何实现Perc...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作