当前位置: 首页 > news >正文

Mysql数据库的备份与还原

1. 备份一个数据库

本文以 mysqldump 为例来讲解, mysqldump 是一个逻辑备份工具,可以在线对 mysql 数据库进行备份。
首先,连接数据库 ( 连接本机 )
# mysql  –uroot  –p123456
注意要想直接敲 mysql 命令而不用输入路径的话,必须先设置环境变量, mysql 等脚本文件一般都在 /usr/local/bin 目录下。将该目录加入到文件 /etc/profile 最后即可, vi /etc/profile   如图:
 
执行 # source /etc/profile 使设置立即生效。
看看都有哪些数据库,备份一个数据库,以 dede 为例。
首先备份 dede 数据库
# mysqldump --opt -uroot -p123456 dede > dedebak.sql
--opt  这只是一个快捷选项,等同于同时添加  --add-drop-tables --add-locking --create-option --disable-keys --extended-insert --lock-tables --quick --set-charset  选项。本选项能让  mysqldump  很快的导出数据,并且导出的数据能很快导回。该选项默认开启,但可以用  --skip-opt  禁用。注意,如果运行  mysqldump  没有指定  --quick   --opt  选项,则会将整个结果集放在内存中。如果导出大数据库的话可能会出现问题。
生成了一个备份文件 dedebak.sql 文件
下面删除数据库对其进行还原,
mysql> drop database dede;
Query OK, 89 rows affected (0.54 sec)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cdcol              |
| crm                |
| dbsys              |
| mysql              |
| phpmyadmin         |
| test               |
+--------------------+
7 rows in set (0.01 sec)
dede 数据库已经不存在。
要想进行恢复,必须先创建数据库,当然该数据库什么也没有,
mysql> create database dede;
Query OK, 1 row affected (0.02 sec)
mysql> use dede;
Database changed
mysql> show tables;
Empty set (0.01 sec)
恢复时使用 mysql 而不是 mysqldump 了,请注意符号方向也变了哦 (< 取代 >)
# mysql -uroot -p123456 dede < dedebak.sql
mysql> use dede;
Database changed
mysql> show tables;
+------------------------+
| Tables_in_dede         |
+------------------------+
| dede_addonarticle      |
| dede_addonflash        |
这样数据库就恢复成功了。
2.  备份所有数据库
# mysqldump --opt -uroot -p123456 --all-databases > allbak.sql
3.  备份多个数据库
# mysqldump --opt -uroot -p123456 --databases db1 db2 db3> many.sql
如果多个数据库出现问题,我们就可以用上面的备份即可恢复。
多个数据库的恢复就不是用上面的恢复方法了,进入数据库,在 mysql 提示符下执行: source / 路径 / 备份文件 ;
例如我的备份文件在 /root 目录下,则为
mysql > source /root/many.sql;
当然多个数据库出现问题,也可用全备文件进行恢复。
当然此备份并非最佳备份方案,如果哪位朋友还有更好的方法,还请一起分享一下。
 

本文转自 zhangzj1030 51CTO博客,原文链接:
http://blog.51cto.com/tech110/200401

相关文章:

  • SUSE_NFS、Samba服务搭建
  • linux的页表为什么没有实现自映射
  • Zabbix使用SMTP发送邮件报警及定制邮件报警内容
  • Windows Mobile下C++取屏幕分辨率的方法
  • data pump (数据抽取)测试
  • Linux的Netfilter框架深度思考-对比Cisco的ACL-
  • ext3与ext4区别
  • mysql主主-配置数据同步
  • DHCP Snooping + Dynamic ARP Inspection(DAI) 配置
  • MS SQL 查看一个数据库中所有表的行数
  • 思科CCNA考试实验常用的命令总结
  • SQL Server里书签查找的性能伤害
  • 连接mysql数据库,创建用户模型
  • 【详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!】【二】...
  • %check_box% in rails :coditions={:has_many , :through}
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • JavaScript函数式编程(一)
  • Java到底能干嘛?
  • magento2项目上线注意事项
  • Python 基础起步 (十) 什么叫函数?
  • vue 配置sass、scss全局变量
  • 爬虫模拟登陆 SegmentFault
  • 区块链共识机制优缺点对比都是什么
  • 为什么要用IPython/Jupyter?
  • 正则表达式
  • 白色的风信子
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #{} 和 ${}区别
  • (70min)字节暑假实习二面(已挂)
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (C语言)球球大作战
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (分布式缓存)Redis分片集群
  • (九)信息融合方式简介
  • (一)基于IDEA的JAVA基础1
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转)ObjectiveC 深浅拷贝学习
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .NET Micro Framework 4.2 beta 源码探析
  • .NET 分布式技术比较
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • /etc/sudoers (root权限管理)
  • ::前边啥也没有
  • @Bean有哪些属性
  • @NoArgsConstructor和@AllArgsConstructor,@Builder
  • @SuppressWarnings(unchecked)代码的作用
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • [.NET]桃源网络硬盘 v7.4
  • [AI]文心一言爆火的同时,ChatGPT带来了这么多的开源项目你了解吗
  • [AIGC] 如何建立和优化你的工作流?
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用
  • [Android]How to use FFmpeg to decode Android f...