mysql数据库备份/恢复等心得-Navicat for mysql


一、数据传输

  1. 如下图所示,选择”工具”->”数据传输”。
  2. “中选择你要导入的连接来源和并选择相应的带导入的数据库,”目标“中选择你需要将数据恢复到的数据库连接和数据库名称。
  3. 在“数据传输”的“高级”选项中,可以设置是否包含索引,遇到错误继续(建议选上)等。
  4. 最后点击“开始”进行导入即可。

  5. 优势:可以传输大量数据,推荐。


二、转存数据库的SQL结构和数据

  1. 如下图所示,选择本地数据库如”test”,右键选择“转存SQL文件”。如果再选择“结构和数据”,就保存SQL表结构的同时会保存里面的数据。如果选择“仅结构”,只保存表结构,数据不保存。
  2. 之后,以SQL的形式保存到本地(test.sql)。查看该SQL文件,可以看到其实是一堆SQL语句,首先是判断表格如果存在就先DROP TABLE,然后创建表格CREATE TABLE,最后向表格INSERT INTO原有的数据。对每个表格大致都是这样的过程。(疑问:当数据量是100万的时候,这个SQL文件可能很大,执行SQL会出问题)


三、备份

  1. 如下图所示,选择本地数据库如”test”,选择“备份”->“新建备份”,在“注释”中添加对本次备份的详细说明。然后保存到本地
  2. 还原备份:右键选择需要还原的备份文件“2017-12-18 10:42:38”->“还原备份”即可。

四、mysqldump定时备份

  1. mysqldump脚本备份:创建脚本“mysql_backup_tool.bat”文件,文件内容为:

    rem ******MySQL backup start********
    @echo offforfiles /p "E:\mysql_backup" /m emsc_backup_*.sql -d -30 /c "cmd /c del /f @path"set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%"
    C:\xampp\mysql\bin\mysqldump --opt --single-transaction=TRUE --user=root --password=root --host=localhost --protocol=tcp --port=9220 --default-character-set=utf8 --single-transaction=TRUE --routines --events "test" > E:\mysql_backup\yotta_backup_%Ymd%.sql@echo on
    rem ******MySQL backup end********
  2. 其中,forfiles后面是查询本地路径下的sql备份文件,删除30天以上的备份文件。set后面设置的时间信息,然后设置本地mysql环境下mysqldump.exe的路径,设置数据库连接的主机IP(–host),用户名(–user),密码(–password),端口(–port)。设置需要备份的数据库名称“test”和保存到本地的文件信息:E:\mysql_backup\yotta_backup_%Ymd%.sql。

  3. 运行.bat脚本文件即可在路径下看到备份的文件信息。

五、定时备份软件:MySQLBackupFTP

  1. 下载最新版的MySQLBackupFTP软件,连接本地数据库,选择需要备份的数据库“test”。
  2. 设置保存的路径,支持保存到本地文件夹,ftp服务器等。
  3. 设置通知邮箱信息,向该邮箱发送备份的信息。
  4. 设置定时备份计划,建议每日凌晨3点备份。
  5. 将该计划保存到本地,即可实现定时备份计划。
  6. 优势:比脚本方便操作,更加便捷。


六、备份mysql/data文件夹下数据库中的文件

  1. 以表”Table”为例:
    如类型是MyISAM, 数据文件则以”Table.frm””Table.MYD””Table.MYI””三个文件存储于”/data/databasename/”目录中.如类型是InnoDB,数据文件则存储在”databasename/”目录中.如类型是InnoDB,数据文件则存储在”databasename/”目录中. 如类型是InnoDB, 数据文件则存储在”innodb_data_home_dir/″中的ibdata1文件中(一般情况),结构文件存在于table_name.frm中.
    MySQL的数据库文件直接复制便可以使用,但是那是指“MyISAM”类型的表。
    而使用MySQL-Front直接创建表,默认是“InnoDB”类型,这种类型的一个表在磁盘上只对应一个“.frm”文件,不像MyISAM那样还“.MYD,*.MYI”文件。
    MyISAM类型的表直接拷到另一个数据库就可以直接使用,但是InnoDB类型的表却不行。解决方法就是:
    同时拷贝innodb数据库表“*.frm”文件和innodb数据“ibdata1”文件到合适的位置。启动MySQL的Windows服务
    由于MySQL这样数据混杂的形式, 往往很容易让使用者在备份时忘记了备份InnoDB, 从而导致了上述错误.

  2. 如果原数据库引擎是MyISAM,直接拷贝原有数据库文件”.frm”、”.MYD”、”*.MYI”等文件;如果原数据库引擎是InnoDB,切记还需拷贝ibdata1文件

  3. 一般时候建议使用逻辑备份,即之前的sql文件备份。当数据表格数据量较大或者执行sql恢复时候报错时,可以使用物理备份,即将数据库表格文件直接拷贝恢复。之前遇到过一个数据库表格的大小为19个G,执行sql语句恢复的时候由于插入语句报错而丢失很多数据。


总结

mysql数据备份是必要的,之前实验室有个组的数据在阿里云服务器上,然后某天忽然服务器被搞了,数据库数据丢失,然后没有备份,雪崩。建议大家养成良好的每日备份数据库的习惯。

mysql数据库备份心得相关推荐

  1. mysql 恢复数据库乱码了_再谈MySQL数据库备份恢复和乱码问题

    在我转到wordpress之后第一个考虑的是它的数据库备份恢复问题,因为写bloger都知道,自己的blog记录的都是自己需要的宝贵的资料和文字,如果因为各种未知因素导致数据库崩溃或者空间商出了问题, ...

  2. mysql 数据库备份 乱码_再谈 MySQL 数据库备份恢复和乱码问题

    在我转到wordpress之后第一个考虑的是它的数据库备份恢复问题,因为写bloger都知道,自己的blog记录的都是自己需要的宝贵的资料和文字,如果因为各种未知因素导致数据库崩溃或者空间商出了问题, ...

  3. 阿里云 mysql 导出数据库备份_导出整个mysql数据库备份

    mysql和mssql的备份和恢复数据的方法 mysql数据库的备份方法可以用 导出要用到MySQL的mysqldump工具,基本用法是: shell> mysqldump [OPTIONS] ...

  4. javaweb实现mysql备份功能_java web 实现mysql 数据库备份、恢复

    如题,由于项目需要,研究并实现了java web的 mysql数据库的备份.下载.恢复功能,中间遇到一些问题,耗费了不少时间,下面让我一一道来: 背景介绍: window 7系统 mysql 5.7 ...

  5. mysql备份数据库语句6_13.4 MySQL用户管理;13.5 常用sql语句;13.6 MySQL数据库备份恢复...

    扩展 : SQL语句教程 什么是事务?事务的特性有哪些? 根据binlog恢复指定时间段的数据 mysql字符集调整 使用xtrabackup备份innodb引擎的数据库  innobackupex  ...

  6. mysql用户管理,常用sql语句,mysql数据库备份恢复

    2019独角兽企业重金招聘Python工程师标准>>> mysql用户管理 grant all on . to 'user1' identified by 'passwd'; gra ...

  7. MySQL数据库备份命令

    原文参考:MySQL数据库备份的命令 - 司南 mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql ...

  8. MySQL数据库备份和还原的常用命令小结

    MySQL数据库备份和还原的常用命令小结,学习mysql的朋友可以参考下. 备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword datab ...

  9. mysql数据库备份报错145_mysql数据库导出时报错mysqldump: Got error: 145的解决方法

    在给mysql数据库备份时,报错:mysqldump: Got error: 145: Table './jxzhtopenfire/ofoffline' is marked as crashed a ...

最新文章

  1. 利用源代码搭建lnmp环境
  2. nginx 操作笔记
  3. ACL 2019 开源论文 | 基于知识库和大规模网络文本的问答系统
  4. poj2002 STL set
  5. GPU Pro2 - 1.Terrain and Ocean Rendering with Hardware Tessellation
  6. MySQL5.7 安装(win)
  7. python获取按钮点击后的数据_django表单中的按钮怎么获取数据
  8. Twisted入门教程(10)
  9. python 流写入文件_Python数据流写入文件
  10. 移动通信原理学习笔记之三——抗衰落和链路性能增强技术
  11. 动软代码生成器 模板
  12. 小学计算机教师面试试题及答案,2019下半年小学信息技术教师资格证面试真题及答案汇总...
  13. 微信内置浏览器缓存如何避免,如何防止微信缓存
  14. 求生之路无限火力服务器,《求生之路》终于数3了?还没开测就已经卖疯了……...
  15. 小米手机v3.exo 合并_eXo发布Web Content Management 2.0作为开源
  16. 观察 | 从0到700万,钉钉只用3年,原因就是快准狠!
  17. 入手评测 ROG 冰刃 5 Plus怎么样
  18. 问题 G: 流连人间的苏苏
  19. 炉石一键拔网线_炉石传说拔网线插件
  20. Android获取设备支持的编解码器

热门文章

  1. php ajax 分页phpapi,ajax分页_php ajax分页代码
  2. dqn在训练过程中loss越来越大_DQN算法实现注意事项及排错方法
  3. mysql续型_mysql续集1
  4. 【数据结构】KMP算法(c语言)
  5. 应用层勾子IAT HOOK(源码)
  6. 客户端网络库实现真的很简单吗?
  7. Flink 架构:三层架构体系、运行时组件
  8. scrapy去重原理,scrapy_redis去重原理和布隆过滤器的使用
  9. TeamCity和GitLab整合
  10. 《Go语言圣经》学习笔记 第一章 Go语言入门