1、mysql备份和恢复、损坏情况分类和挽救mysql备份和恢复手动备份:1.本次项目在 wampserver集成环境下的 MYSQL进行,首先安装wampserver2.0i,确保 MYSQL服务能正常运行后登录http:/localhost/phpmyadmin/,进入 phpmyadmin,设置用户名为 root,密码为 123;导入一个数据库 tab作为项目素材:2. 将 windows的环境变量 Path中的变量值修改为 MYSQL的 bin目录:D:wampbinmysqlmysql5.1.36bin;具体步骤为:右击“我的电脑”-属性-高级-系统环境变量-双击 Path-把变量值修改
2、为:D:wampbinmysqlmysql5.1.36bin,结果如下:3.点击“开始”菜单点击“运行” ,输入“cmd” ,单击确定进入命令行模式,在命令行模式下直接输入:mysqldump u root p tabD:tab.dql,接着按照系统提示请输入密码,操作如下:再到指定目录查看是否备份成功,结果如图: ,说明已完成对数据库 tab的备份。定时备份:1.新建一个文本文件并将后缀名改为 bat格式的批处理文件 db_bak.bat,编辑代码如下:(以下是将数据库 tab备份到文件夹 E:/db_backup/并以时间命名的代码)echoD:wampbinmysqlmysql5.1.3
3、6binmysqldump -opt -add-locks -u root -password=123 tabE:/db_backup/%date:0,4%date:5,2%date:8,2%time:0,2%time:3,2%time:6,2%.sql2.将备份文件添加到 windows任务计划中进行定时备份,步骤如下:点击开始-程序-附件-系统工具-任务计划-添加任务计划测试结果:当任务时间到达时,在指定目录下自动备份成功文件:查看里面数据是正确的,说明自动定时备份成功。还原1. 首先,删除数据库 tab中表格 form中的一行数据,如下图:2. 点击“开始”菜单点击“运行” ,输入“cm
4、d” ,单击确定进入命令行模式,在命令行模式下直接输入:mysql u root p tabtab.dql,接着按照系统提示请输入密码,操作如下:再重新查看数据库 tab,结果如下:证明数据恢复成功,以上操作实现了 MYSQL数据的备份和恢复。一、 损坏情况分类和挽救以下原因是导致 mysql 表毁坏的常见原因: 1、 服务器突然断电导致数据文件损坏。 2、 强制关机,没有先关闭 mysql 服务。 3、 mysqld 进程在写表时被杀掉。 4、 使用 myisamchk 的同时,mysqld 也在操作表。 5、 磁盘故障。 6、 服务器死机。 7、 mysql 本身的 bug 。 数据损坏的
5、修复处理方法:1. 使用 MySQL(和 PHP搭配之最佳组合)的 check table和 repair table 的sql语句;2. 使用 MySQL(和 PHP搭配之最佳组合)提供的多个 myisamchk, isamchk数据检测恢复工具。3. 1.Mysql出现乱码的几种情况和解决办法:保证编码相同,若不同,则通过mysql_query(“SET character_set_connection=gb2312,character_set_results=gb2312, character_set_client=binary“);或者转换编码的函数修正为相同编码格式。4. 卸载重装后
6、,无法启动 mysql服务提示本地计算机无法启动 mysql 服务 错误 1067:进程意外终止。查看 mysql根目录下有一 计算机名.err 打开一看全是英文的错误提示; 根据其中的有一条错误,分析; 打开 my.ini或 f文件,找到 default-storage-engine这一行,把它改成 default-storage-engine=MyISAM。 重启服务,问题解决。项目心得:锦煌:1. 本项目中我们完成了 MYSQL数据库的备份以及恢复,同时初步了解到 MYSQL数据库基本损坏情况以及解决之道。一开始因为考虑不周到,只是使用了简单的手动备份,但正如老师所说:难道每次都要手动去备份,那要是忘记备份了而导致数据损失了怎么办?所以采用定时备份,通过使用系统的任务计划功能实现自动备份,然而遇到一个备份文件覆盖的问题,即第一天备份的文件会被第二天备份的文件覆盖,所以就在备份条件里加上时间条件,从而生成不同的文件。由于之前没有 MYSQL数据库的基础,所以基本所有知识都是现学现用,显得有些吃力,通过查找资料以及互相讨论才勉强完成。但也说明只要努力踏实去学,一定会有所收获的。然而对 MYSQL数据损坏资料的收集不够,主要是学习网上现有的资料,这点需要在日后使用 MYSQL过程中继续学习。俊洁:2. 略