×

mysql数据库恢复(mysql数据库恢复命令)

前端技术网 前端技术网 发表于2024-02-02 12:07:22 浏览527 评论0

抢沙发发表评论

一、误删除了数据库的数据文件,而且没有备份,怎样恢复

打开mysql的binlog功能:对于mysql也是支持增量备份,但要打开mysql的binlog功能。我们修改mysql的配置文件。linux是/etc/my.cnf,windows是mysql的安装目录/my.ini我们在[mysqld]下面加上log-bin一行代码,如下面。[mysqld]log-bin=mysql-bin**代码加完后重起mysql即可。某客户更新数据的时候,误删了数据库的内容,因为数据库做了主从,但是没有做备份(备份很重要啊!)幸好开启了bin-log,之后只好把整个日志的记录拿回来本地进行恢复。之后自己也做了一个简单的测试,对数据进行恢复,具体如下:

1、新建一个表CREATETABLE`lynn`.`sn_test`(`name`VARCHAR(10)CHARACTERSETutf8COLLATEutf8_binNOTNULL,`age`INT(3)NOTNULL)ENGINE=MYISAM;

mysql数据库恢复(mysql数据库恢复命令)

2、插入多条数据INSERTINTO`lynn`.`sn_test`(`name`,`age`)VALUES('lynn1','1');INSERTINTO`lynn`.`sn_test`(`name`,`age`)VALUES('lynn2','2');INSERTINTO`lynn`.`sn_test`(`name`,`age`)VALUES('lynn3','3');INSERTINTO`lynn`.`sn_test`(`name`,`age`)VALUES('lynn4','4');

3、查看数据并删除mysql>select*fromsn_test;+-------+-----+|name|age|+---------+---+|lynn1|1||lynn2|2||lynn3|3||lynn4|4|+---------+-----+4rowsinset(0.00sec)mysql>deletefromsn_test;QueryOK,4rowsaffected(0.00sec)mysql>select*fromsn_test;Emptyset(0.00sec)4、mysqlbinlog恢复数据mysqlbinlogmysql-bin.000006>1.sql查看1.txt里面数据插入的纪录,把删除之前的数据进行恢复mysqlbinlogmysql-bin.000006--start-position=2471--stop-position=2876|mysql-uroot-p123重新登录,查看数据,OK,已经成功恢复了对于数据库操作,应该注意如下问题:1、要常备份(全备,增量备份),出了问题可以最快恢复数据;2、操作数据库前,要把需要操作的数据库或者表dump出来;3、需要把bin-log打开,就算没有做上面的两步,也可以通过日志恢复数据

二、mysql自己删了几个包还原不回来

mysql每次运行都会自动产生运行包,只在打开就会有包。

三、MySQL数据库备份和还原的常用命令

1.备份MySQL数据库的命令

mysqldump-hhostname-uusername-ppassworddatabasename>backupfile.sql

2.备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。

mysql数据库恢复(mysql数据库恢复命令)

mysqldump-–add-drop-table-uusername-ppassworddatabasename>backupfile.sql

3.直接将MySQL数据库压缩备份

mysqldump-hhostname-uusername-ppassworddatabasename|gzip>backupfile.sql.gz

4.备份MySQL数据库某个(些)表

mysqldump-hhostname-uusername-ppassworddatabasenamespecific_table1specific_table2>backupfile.sql

5.同时备份多个MySQL数据库

mysqldump-hhostname-uusername-ppassword–databasesdatabasename1databasename2databasename3>multibackupfile.sql

6.仅仅备份数据库结构

mysqldump–no-data–databasesdatabasename1databasename2databasename3>structurebackupfile.sql

7.备份服务器上所有数据库

mysqldump–all-databases>allbackupfile.sql

8.还原MySQL数据库的命令

mysql-hhostname-uusername-ppassworddatabasename<backupfile.sql

9.还原压缩的MySQL数据库

gunzip<backupfile.sql.gz|mysql-uusername-ppassworddatabasename

10.将数据库转移到新服务器

mysqldump-uusername-ppassworddatabasename|mysql–host=*.*.*.*-Cdatabasename

四、mysql中drop的表能恢复吗

情况1、如果你有该库的整体备份或对这个表的单独备份,那么也许可以恢复。可以将最新的备份恢复到一个备用的服务器上,导出那表的内容,完成恢复情况2、如果没有任何备份,那就基本没戏了。一般删除表的操作是droptable,日志中不会记录删除具体行数的记录。表所对应目录下的文件已经被删除(innodb独立表空间,单表归为一文件)。

同样的情况适用于myisam数据库引擎,对应的myd/myi/frm文件均被删除。

这不像windows还有垃圾箱,是不可逆的操作此外,对数据库最危险的操作就是对表进行删除行、删除表或删库的操作了,所以任何对数据库有高危风险的操作前最重要的就是备份!备份!再备份!

mysql数据库恢复的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于mysql数据库恢复命令、mysql数据库恢复的信息别忘了在本站进行查找哦。