运维开发网

mysql(8.0版本测试) 数据库的备份,还原

运维开发网 https://www.qedev.com 2020-11-29 13:02 出处:51CTO 作者:一念为云
方法一:非常规方法可以实现脚本操作.直接备份data目录,这种备份方法很简单,还原操作也很简单,将备份的data目录下的文件全部拷贝过来,就完成了数据库的还原,包括数据库,表,用户,及其权限等等都可以完美还原.方法二:通过mysqladmin备份可以实现脚本操作.1)备份某个数据库或者某个数据库的某几个表:mysqldump[OPTIONS]database[tables]比如:备份db1库mys

方法一:非常规方法

可以实现脚本操作.

直接备份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等等的文件存在

mysql(8.0版本测试) 数据库的备份,还原

可以在数据库中使用如下方法查看:

show variables like '%log_bin%';

mysql(8.0版本测试) 数据库的备份,还原

第一行就表明了已经开启了binlog日志

二进制日志的好处就是,当你的数据库因为某些因素数据库丢数据了,或者被删库了,但是如果还有日志文件,那就不用慌

比如,现在我有一个数据库db1,库中有两个表tb01,tb02

mysql(8.0版本测试) 数据库的备份,还原

现在,模拟故障,手动删除库db1

mysql(8.0版本测试) 数据库的备份,还原

我们先确认现在正在使用的binlog日志文件是哪一个,一般都是尾数最大的文件为当前日志文件

mysql(8.0版本测试) 数据库的备份,还原

这时先退出mysql,使用mysqlbinlog查看binlog.000008这个文件

mysqlbinlog binlog.000008

可以发现最后有这么一部分内容

mysql(8.0版本测试) 数据库的备份,还原

最后,看见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(宝塔面板)等等.

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号