方法一:非常规方法

可以实现脚本操作. 直接备份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(宝塔面板)等等.