admin管理员组文章数量:1582696
方法一:非常规方法
可以实现脚本操作.
直接备份data目录,这种备份方法很简单,还原操作也很简单,将备份的data目录下的文件全部拷贝过来,就完成了数据库的还原,包括数据库,表,用户,及其权限等等都可以完美还原.
这种方法可以应对数据库服务器瘫痪,但是又无其它备份可用,可以先把数据库目录直接拷贝出来,然后部署完环境后,直接覆盖目录即可.
方法二:通过mysqldump备份
可以实现脚本操作.
1)备份某个数据库或者某个数据库的某几个表:
mysqldump [OPTIONS] database [tables]
比如:
备份db1库
mysqldump -u root -p db1 > db1.sql
备份db1库的tb1,tb2表
mysqldump -u root -p db1 tb1 tb2 >db1-1.sql
2)备份某几个数据库:
mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
比如:
备份db1,db2数据库
mysqldump -u root -p --databases db1 db2 > bak01.sql
3)备份所有数据库:
mysqldump [OPTIONS] --all-databases [OPTIONS]
比如:
备份所有数据库
mysqldump -u root -p --all-databases > all_db.sql
这种方法备份的文件内容都是sql语句,可以直接使用mysql命令导入,即用如下形式:
mysql -u root -p database < bak.sql
方法三:使用binlog日志备份还原
1,首先要开启binlog日志
表象就是在mysql根目录下会有诸如binlog.index,binlog.000001,binlog.00000等等的文件存在
可以在数据库中使用如下方法查看:
show variables like '%log_bin%';
第一行就表明了已经开启了binlog日志
二进制日志的好处就是,当你的数据库因为某些因素数据库丢数据了,或者被删库了,但是如果还有日志文件,那就不用慌
比如,现在我有一个数据库db1,库中有两个表tb01,tb02
现在,模拟故障,手动删除库db1
我们先确认现在正在使用的binlog日志文件是哪一个,一般都是尾数最大的文件为当前日志文件
这时先退出mysql,使用mysqlbinlog查看binlog.000008这个文件
mysqlbinlog binlog.000008
可以发现最后有这么一部分内容
最后,看见drop database db1就是删库操作,一般就近查找就能找到
注意红框部分,接下来要使用它们还原数据库
1)使用时间点还原数据库:
mysqlbinlog binlog.000008 --stop-datetime="2020-11-26 13:24:16" -d db1|mysql -u root -p
登入mysql,查看数据库又回来了
2)使用位置点还原数据库:
mysqlbinlog binlog.000008 --stop-position="7242045" -d db1|mysql -u root -p
同样查看数据库,已经回复成功了.
方法四:使用第三方工具备份
1)phpmyadmin
该方法需要部署一个phpmyadmin工具,可视化web界面,其中的"导出","导入"功能即可备份,还原数据库,手动操作比较直观,方便.
2)导航猫(navicat)
这个是windows平台下的一个数据库管理软件,是收费的,但是功能很强大,除了手动备份数据,还可以方便的制定定时备份计划等等.除了mysql外,还支持很多其它常见数据库.
3)其它集成工具
如果是用来部署和管理web站点,那么可以选择一些集成工具,这些集成管理工具在提供了数据库管理功能的同时还兼有其它功能,比如windows平台常用的phpstudy,护卫神等等,linux平台的BT(宝塔面板)等等.
文章来源: blog.51cto,作者:一念为云,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.51cto/3823536/2555239
版权声明:本文标题:mysql 8.0数据备份恢复_mysql(8.0版本测试) 数据库的备份,还原 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1725475849a1024872.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论