MySQL数据恢复心得体会
- 格式:doc
- 大小:279.50 KB
- 文档页数:5
Mysql数据库学习心得(1)由于工作中需要使用mysql,笔者通过网上学习,动手实践,终于从一个"数据库菜鸟"变成了能熟练操作mysql的"准大虾"了,:)。
现将学习心得整理如下。
MySQL是完全网络化的跨平台关系型数据库系统,一个真正的多用户、多线程SQL数据库服务器,同时是具有客户机/服务器体系结构的分布式数据库管理系统。
它具有功能强、使用简便、管理方便、运行速度快、安全可靠性强等优点,用户可利用许多语言编写访问MySQL数据库的程序,对于中、小型应用系统是非常理想的。
除了支持标准的ANSI SQL语句,更重要的是,它还支持多种平台,而在Unix系统上该软件支持多线程运行方式,从而能获得相当好的性能。
对于不使用Unix 的用户,它可以在Windows NT系统上以系统服务方式运行,或者在Windows 95/98系统上以普通进程方式运行。
而在Unix/Linux系统上,MySQL支持多线程运行方式,从而能获得相当好的性能,而且它是属于开放源代码软。
MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成,MySQL的执行性能非常高,运行速度非常快,并非常容易使用,是一个非常棒的数据库。
MySQL的官方发音是"My Ess Que Ell"(不是MY-SEQUEL )。
一.获得MySQL首先必须下载MySQL。
Mysql的官方网站是:,在中国的镜像是: 或者:/,可以下载MySQL的稳定版本3.22.32(截止到笔者发稿为止)。
其版本名称是mysql-shareware-3.22.32-win,不但免费而且没有所谓的"30天使用期限"。
二.MySQL的安装(一)在Win98/Winnt下的安装到一个目录,运行Setup程序,会提示整个安装的过程。
它默认安装到c:mysql下,如果要安装到其它目录下还有改动一些东西,作为初学者,可以先不管,以默认的目录安装。
mysql实训报告心得体会随着信息技术的迅速发展,数据库管理系统已经成为各个行业中不可或缺的重要组成部分。
在进行MySQL实训后,我深刻体会到了数据库管理的重要性以及MySQL在此领域中扮演的角色。
下面我将就本次MySQL实训的过程和心得作一总结。
一、实训目标与背景本次MySQL实训的目标是培养学员们的数据库管理能力,掌握MySQL的基本使用和管理技巧。
MySQL作为一种开放源代码的关系型数据库管理系统,被广泛应用于各种企业级和个人项目中。
学习MySQL对于掌握数据库管理的基本原理和技术有着重要的意义。
二、实训内容与过程在本次MySQL实训中,我们主要学习了以下几个方面的内容:1. MySQL的安装与配置:我们首先学习了如何正确地安装和配置MySQL数据库。
掌握MySQL的正确安装和配置对于后续的使用和管理非常重要,也是使用MySQL的基础。
2. 数据库的设计与创建:在实训中,我们学习了如何进行数据库的设计和创建。
通过学习数据库的基本结构和关系模型,我们能够更加清晰地理解不同数据表之间的联系和约束条件。
3. 数据表的操作和管理:接下来,我们学习了如何对数据表进行各种操作和管理。
包括数据表的增删改查,以及数据表之间的关联和连接操作等。
4. SQL语句的编写与优化:MySQL作为一种关系型数据库管理系统,使用SQL语言进行数据库操作。
在实训中,我们学习了如何编写高效的SQL语句,并通过优化技巧提升数据库查询和操作的性能。
5. 数据库备份与恢复:在实际项目中,数据库的备份与恢复是非常重要的环节。
我们学习了如何进行数据库的备份和恢复操作,以及如何保证数据库的高可用性和数据的安全性。
实训过程中,我们通过理论学习和实际操作相结合的方式,深入掌握了MySQL数据库管理的基本技能,提升了我们的实际能力。
三、实训心得体会通过本次MySQL实训,我有以下几点心得体会:1. 掌握MySQL的基本使用和管理技巧是非常重要的。
mysql实训报告心得体会在进行mysql实训的过程中,我深入学习了数据库管理系统的原理和基本操作,通过实际的项目实践,丰富了自己的技术知识和实战经验。
下面是我对实训过程的总结和心得体会。
1. 理论知识的巩固与应用在课堂上学习mysql的理论知识后,通过实训项目的实践,我更加深入地理解了数据库的核心概念和基本原理。
在实践中,我能够灵活运用SQL语句进行数据的增删改查操作,并且通过实际的项目需求,运用各种SQL语句进行复杂查询和数据处理。
2. 数据库设计与规范化在实训过程中,我学习了数据库的设计方法和规范化技术。
通过对需求分析和实际设计,我明确了数据库的表结构、数据类型和主键外键等约束。
在设计过程中,我注重数据的整合性和一致性,优化数据库结构,减少数据冗余,提高查询和操作效率。
3. 数据库性能调优在实际项目中,我遇到了数据库性能问题,通过调优技术,解决了查询缓慢、连接超时等问题。
我优化了查询语句、创建索引以及调整数据库参数等方式来提高数据库的性能和响应速度。
通过对实际问题的解决,我进一步加深了对数据库性能优化的理解和应用能力。
4. 数据库备份与恢复在实训过程中,我也学习了数据库备份与恢复的方法。
我了解了常用的备份方式,如物理备份和逻辑备份,并熟悉了mysqldump命令的使用。
通过实践,我能够定时备份数据库,并且在需要时进行数据的恢复,保证了数据的安全性和完整性。
5. 安全性与用户权限管理在实训项目中,我学习了数据库的安全性措施和用户权限管理技术。
我了解了常见的安全威胁和安全策略,并掌握了用户权限的分配和管理方法。
通过对角色、权限和访问控制的理解,我设定了相关的用户权限,并保护了数据库的安全性。
通过这次mysql实训,我不仅提高了mysql数据库操作和管理技能,还提升了问题解决和团队合作能力。
在项目中,我与团队成员紧密配合,共同完成了数据库的设计、开发和测试工作。
通过与他人合作,我学会了如何有效地沟通和协作,提高了自己的团队合作能力。
mysql数据库总结体会一、概述MySQL是一个开源的关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司旗下产品。
MySQL被广泛应用于Web 应用程序的开发中,是最流行的关系型数据库管理系统之一。
二、基本概念1. 数据库:指在一定范围内,按照一定规则组织起来、存储在一起、具有共享性并可供多个用户共同使用的数据集合。
2. 表:指数据库中的数据组织形式,由行和列组成。
3. 字段:表中的列,用来描述表中每个数据项的属性。
4. 记录:表中的行,表示一个完整的数据项。
5. 主键:表中用来唯一标识每条记录的字段或字段组合。
6. 外键:一个表中的字段,它指向另一个表中主键所在列。
三、安装与配置1. 下载MySQL安装包并进行安装;2. 配置MySQL服务端口号和字符集;3. 配置MySQL用户和权限;4. 配置MySQL备份与恢复。
四、基本操作1. 创建数据库:CREATE DATABASE dbname;2. 删除数据库:DROP DATABASE dbname;3. 创建表:CREATE TABLE tablename (column1 datatype,column2 datatype,...);4. 删除表:DROP TABLE tablename;5. 插入数据:INSERT INTO tablename (column1, column2, ...) VALUES (value1, value2, ...);6. 查询数据:SELECT column1, column2, ... FROM tablename WHERE condition;7. 更新数据:UPDATE tablename SET column1 = value1 WHERE condition;8. 删除数据:DELETE FROM tablename WHERE condition;五、高级操作1. 索引:提高查询效率的一种技术,可以在表中某个列上创建索引。
mysql数据库期末总结一、前言MySQL是一款开源的关系型数据库管理系统(RDBMS),被广泛应用于Web开发、企业级应用等领域。
作为一名学习数据库的学生,我们在本学期的课程中对MySQL数据库进行了深入学习和使用。
在学习的过程中,我对MySQL数据库有了更深刻的认识,并且也掌握了一些基本的MySQL使用技巧。
本文旨在总结本学期学习MySQL数据库的经验与教训,提供给其他学习数据库的同学作为参考。
二、MySQL概述MySQL是一款适用于各种规模的应用程序的数据库管理系统。
它支持多种操作系统(如Linux、Windows、Mac OS)和多种编程语言(如Java、Python、PHP)的接口。
MySQL 以其高性能、可靠性和用户友好性而备受推崇。
1. 数据库系统MySQL是一种基于客户-服务体系架构的数据库系统。
它由一个客户端程序和一个服务器程序组成。
客户端程序通过与服务器进行通信来发送和接收数据。
2. 数据库管理系统MySQL是一种关系型数据库管理系统(RDBMS),它将数据组织成表格(表)的形式。
每个表由一组行(记录)组成,每行由一组列(字段)组成。
表格是数据库的核心组成部分,用于存储和管理数据。
3. SQL语言MySQL使用SQL(Structured Query Language)作为其标准查询语言。
SQL是一种用于操作关系型数据库的语言,它包含了一系列命令和语法规则。
通过使用SQL语言,我们可以对数据库进行增删改查的操作。
三、MySQL安装与配置在学习MySQL之前,我们首先需要安装和配置MySQL数据库。
以下是一些关于MySQL 安装和配置的经验总结:1. 安装MySQLMySQL提供了各种版本的安装程序,我们可以选择适合自己操作系统的版本进行安装。
安装过程中可以根据提示完成基本设置,如指定安装目录、设置管理员密码等。
2. 配置MySQL安装完成后,我们需要对MySQL进行配置。
首先,我们可以编辑f文件来修改MySQL的配置。
mysql实习收获与总结(实用15篇)mysql实习收获与总结第1篇此次毕业实习,我领悟了“理论与实践的结合才是硬道理”,掌握了运用所学知识解决处理实际问题的方法和技巧,学会了与员工同事相处沟通的有效方法途径,积累了处理有关人际关系问题的经验方法,同时我体验到了社会工作的艰苦性。
实习中也暴露出自己的很多缺点和不足,我想这对我以后的工作和发展都是有较大限制的。
人们常说,大学是个象牙塔。
确实,学校与职场、学习与工作、学生与员工之间存在着巨大的差异。
从校园走向社会,在这个转换的过程中,人的观点、行为方式、心理等方面都要做适当的调整。
所以,不要老抱怨公司不愿招聘应届毕业生,有时候也得找找自己身上的问题。
而这次实习提供了这样一个机会,让我接触到真实的职场,有了实习的经验,以后毕业工作时就可以更快、更好地融入新的环境,完成学生向职场人士的转变。
在实习的那段时间,也让我体会到从工作中再拾起书本的困难性。
每天较早就要上班工作,晚上按时下班回家,深感疲惫,很难再有精力静下心来看书。
这让我更加珍惜在学校的时光。
mysql实习收获与总结第2篇这短短一个月的实习经历,让我认识到实习生该有“初生牛犊不怕虎”的`精神。
实习是一个学生走进社会的过渡阶段和必经阶段。
在我看来,一个成功的实习生,应要牢记实习生的身份,也要忘却实习生的身份。
之所以要牢记,如上边讲到的,目的是学习,这也职责之在。
因而,必须要主动争取机会,多做,多思考。
而忘却则是因为只有把自己当作是正职人员来看待,从心态上端正自己的态度,才能在实习期间有更大的收获。
刚到公司实习的时候,俨然像个小学生上课那般乖巧和拘谨。
人家没叫我坐时,我就呆站着;坐着的时候也是毕恭毕敬,不敢多手乱动人家的东西;私底下说话也不敢大声,拍扰乱了“课堂纪律”。
然而,工作和机会都是要靠自己去争取的。
在学生到实习生,再由实习生到从职人员这个过程中,谁的角色转变得越快,谁就在起跑线上了一步。
在刚开始的一个星期里,我的沉默和低调给我带来了闲适和无聊的实习生活。
使用MySQL进行数据修复与恢复的方法导语:在数据处理中,数据的损坏和丢失是不可避免的。
MySQL作为一款常用的关系型数据库管理系统,具备强大的数据修复与恢复功能,本文将介绍使用MySQL进行数据修复与恢复的方法,帮助大家解决数据问题。
一、数据修复的背景和影响数据修复是指通过一系列操作手段,对受损、错误或丢失的数据进行修复和还原。
在实际应用中,数据损坏和丢失会给业务运营带来严重的影响,例如导致系统崩溃、无法正常工作,甚至造成数据泄露和重要信息的丢失等。
二、常见的MySQL数据损坏类型1. 表结构错误:例如主键缺失、字段类型错误等;2. 数据完整性错误:例如外键约束不一致、数据冲突等;3. 索引错误:例如索引数据损坏、索引丢失等;4. 文件系统错误:例如数据文件缺失、损坏等。
三、MySQL数据修复的方法1. 使用备份文件进行恢复如果我们有定期备份数据库的习惯,那么当数据发生损坏或丢失时,可以使用备份文件进行恢复。
我们可以通过以下步骤实现:(1)停止MySQL服务,确保数据库处于不可写的状态;(2)将备份文件拷贝到指定目录下,注意命名和目录的一致性;(3)使用MySQL提供的工具,如mysqldump命令,恢复备份文件;(4)启动MySQL服务,验证数据的完整性和正确性。
2. 利用二进制日志进行恢复MySQL的二进制日志(binlogs)即记录了数据库的所有操作,包括插入、删除、更新等,可以利用这些二进制日志实现数据修复的目的。
(1)首先查看二进制日志是否启用,并确定日志文件的位置;(2)使用mysqlbinlog命令解析二进制日志文件,查找出受损数据的相关操作;(3)使用mysql命令行工具执行这些操作,并确保数据正确修复;(4)验证修复的数据是否完整和正确。
3. 利用REPAIR命令修复数据表MySQL提供了修复数据表的命令REPAIR,用于修复损坏的数据表。
我们可以使用以下步骤修复数据表:(1)使用命令连接到MySQL服务器,选择要修复的数据库;(2)执行REPAIR TABLE命令,修复指定的数据表;(3)等待修复完成,并根据返回的提示信息查看修复结果。
mysql心得体会1000字MySQL心得体会MySQL作为一种开源的关系型数据库管理系统,广泛应用于各种网站和应用程序中。
通过学习和使用MySQL,我深感其强大的功能和稳定性。
以下是我对MySQL的心得体会。
1. MySQL的优点1.1 简单易用:MySQL的安装和配置非常简单,适合初学者使用。
同时,MySQL提供了简洁的SQL语言来操作数据库,使得开发人员可以轻松进行数据库的增删改查操作。
1.2 高性能:MySQL具有出色的性能表现,在处理大流量和高并发的情况下仍然能够保持较高的响应速度。
这得益于MySQL对于索引的支持以及其高效的查询优化功能。
1.3 可扩展性强:MySQL支持水平和垂直的扩展,可以方便地进行集群和分布式部署。
这使得MySQL可以适应不同规模和需求的应用场景,保证了系统的可靠性和稳定性。
1.4 开源免费:MySQL采用GPL开源协议,可以免费使用和修改。
这为开发者提供了更多的自由度和灵活性,同时也降低了项目的成本。
2. 数据库设计与规范2.1 表的设计:在设计数据库表时,需要考虑表的结构和字段的类型、长度以及约束条件等。
良好的表设计能够提高数据库的性能和可维护性,减少冗余数据和数据不一致的风险。
2.2 索引的使用:索引是提高查询效率的关键,合理地使用索引可以加快查询速度。
在创建索引时需要考虑查询的频率和字段的选择,避免创建过多或无效的索引。
2.3 数据库范式:范式化设计可以提高数据的一致性和可靠性,减少数据冗余。
在实际应用中,需要权衡范式化和性能之间的关系,选择合适的范式化级别。
3. SQL语句的优化3.1 查询优化:对于频繁执行的查询语句,可以通过优化查询语句、添加索引、调整数据库配置等方式来提高查询的效率。
3.2 事务处理:MySQL支持事务处理,可以保证数据的一致性和完整性。
使用事务可以将多个SQL操作作为一个逻辑单元进行处理,减少了数据不一致的可能性。
3.3 数据库连接与连接池:在高并发的环境下,数据库的连接管理非常重要。
mysql实训报告心得体会在经历了一段时间的MySQL实训后,我对于数据库管理系统有了更深入的了解,并对其中的一些特点和功能有了一定的掌握。
通过本次实训,不仅提高了我的技术能力,还锻炼了我解决问题的能力和团队协作能力。
以下是我在实训中得到的一些心得体会。
一、实训内容回顾及总结1. 实训目标本次实训的目标是通过学习和掌握MySQL的基本概念、SQL语言的使用以及数据库设计与优化等内容,提高我们的数据库管理与开发能力。
2. 实训过程通过老师的讲解和实践操作,我们对MySQL的安装与配置、数据的增删改查、索引的创建与优化、触发器与存储过程等知识进行了学习和实践。
同时,我们还参与了实际的项目开发,深入理解了数据库在实际应用中的重要性和作用。
3. 实训收获通过实际操作和实践项目,我对MySQL数据库管理系统有了更深入的理解和掌握。
我学会了如何创建和维护数据库,如何编写SQL语句进行数据操作,以及如何进行数据库的性能优化和调优等。
这些知识和技能对于我未来的工作和学习都具有很大的帮助。
二、实训中的问题及解决方案在实训过程中,我们遇到了一些问题,但通过团队合作和老师的指导,我们最终找到了解决方案。
1. 数据库连接问题在初次配置MySQL时,我们遇到了数据库连接失败的问题。
经过查找资料和尝试,我们发现是MySQL服务未启动导致的,通过启动服务解决了问题,并学会了如何配置和管理MySQL服务。
2. SQL语句错误在编写SQL语句时,我们遇到了语法错误或逻辑错误的情况。
通过仔细检查和调试,我们找到了错误所在,并进行了相应的修正。
这让我们更加熟悉了SQL语言的使用和调试技巧。
3. 数据库性能问题在项目开发中,我们遇到了数据库查询速度较慢的问题。
通过对查询语句和索引的优化,我们成功地提高了数据库的查询性能,提升了项目的用户体验。
三、实训中的收获与感悟1. 提高了问题解决能力在实训中,我们遇到了各种各样的问题,包括技术问题和项目中的需求问题。
MySQL数据库修复与恢复的方法与技巧概述:MySQL是一种流行的数据库管理系统,广泛应用于各个领域。
然而,在日常的使用中,我们难免会遇到一些问题,比如数据库损坏、数据丢失等。
本文将探讨MySQL数据库修复与恢复的方法与技巧,帮助大家解决这些问题。
一、备份与恢复备份是数据库管理的基本操作之一,可以保护数据库免受意外损坏的影响。
因此,在修复与恢复之前,最好先考虑数据库的备份。
1.1 数据库备份MySQL提供了多种备份方法,包括物理备份和逻辑备份。
物理备份是通过复制数据库文件来实现的,适用于大规模数据库。
逻辑备份是通过导出数据库的SQL语句来实现的,适用于小型数据库。
- 物理备份:使用MySQL提供的工具mysqldump可以进行物理备份。
示例如下:```bashmysqldump -u username -p dbname > backup.sql```这条命令将以SQL文件的形式备份整个数据库。
- 逻辑备份:使用MySQL提供的工具mysqlhotcopy可以进行逻辑备份。
示例如下:```bashmysqlhotcopy dbname /path/to/backup/folder```这条命令将备份整个数据库到指定的文件夹中。
1.2 数据库恢复如果数据库发生损坏或数据丢失,我们可以使用备份文件进行恢复。
- 物理恢复:将物理备份文件复制回原始位置即可实现物理恢复。
- 逻辑恢复:使用MySQL提供的工具mysql命令行或phpMyAdmin等工具,通过导入备份文件的SQL语句来实现逻辑恢复。
二、修复损坏的数据库如果数据库文件损坏,MySQL提供了一些方法来修复它。
2.1 使用MySQL自带的工具- 使用myisamchk工具修复MyISAM表:```bashmyisamchk /path/to/table```- 使用innodb_force_recovery参数修复InnoDB表:在MySQL配置文件中添加以下行:```bash[mysqld]innodb_force_recovery = 1```然后重启MySQL服务,让系统自动尝试修复损坏的InnoDB表。
下级单位给我传了一个70多g的数据,目的是把数据抽取到另外一个数据库,但是前提是我最好把数据库的结构整理出来,方便服务商抽取,所以我必须先把数据恢复出来。
打开一看是MySQL数据库,如下图:一看是MySQL数据库,而我对MySQL数据库不熟,更别说数据恢复了,所以只好到网上学习MySQL的教程,在网上检索以后,觉得有一个教程(/mysql/)不错,就开始学习了。
看过以后对MySQL有了一个大概的了解,然后到网上查找关于数据恢复的资料。
看过以后对恢复有了大概的了解,就开始尝试了。
首先到官网下载MySQL数据库(/downloads/mysql/),因为是数据恢复,所以数据库的版本就好和原版本一样,所以我下了一个5.5的版本,一共有四种下载资源可选择,因为我想在32位的电脑上,所以下载32位的,还有两种类型,是MIS和ZIP,刚开始不懂他们直接的区别,查找资料才知道MIS需要安装,ZIP是免安装版的。
因为免安装版的配置过程比较麻烦(个人觉得),所以就下载了MIS版的,如下图所示。
具体下载过程请参考/mysql/mysql_quick_start.html。
下载完成后就根据教程安装,安装过程请参考:/3324543-140596.html(视频)、/article/ed2a5d1f4968c909f6be179f.html(图片)。
安装好以后就根据网上的教程,将原文件下面的data文件夹拷贝到相应的安装目录下,结果失败了,具体是什么错误,我也忘了,因为时间太久了,记不起来了。
只好在去网上查找资源,但大部分教程都是将data拷贝到相应的目录下(我用的是物理备份)。
经过无数次尝试,大概花了一周多时间,还是没有成功,没办法,只好请教大学同学(大学同学有好多搞软件的),不巧的是搞MySQL得特别少,只有一个,但是他给了我一份资料,我觉得特别好,使我对数据恢复有了全新的认识。
原来MySQL中数据库之间是相互独立的,比如说他有MySQL、test、tgs等数据库,我们要想恢复tgs数据库的内容,那么把tgs数据库相对应的数据拷贝到相应的目录下就可以了,具体请参考/7273768/1668925。
什么事情都不是一凡风顺的,虽然大方向是对的,但还是会发生各种各样的问题,此时就需要耐心,慢慢的解决,一个一个的解决,虽然过程很难熬,但要相信自己,只要我们坚持,肯定会成功的。
细想了一下,我又花了差不多10天时间,才成功把数据恢复的(虽然对于大神来说,时间有点长,但我觉得还可以,因为我是菜鸟,之前对MySQL一点都没有接触过,我也不是搞软件的,而且我们上班时间每天只有6小时,还有其他工作要做)。
中途的细节,我记的也不是很清楚,但我把几个比较典型的错误记录一下,以便在以后再搞类似的工作有参考。
首先,我觉得要成功恢复数据,必须会看错误日志,我就是刚开始不会看错误日志,才浪费了那么大时间。
错误日志一般在data文件夹下,比如我的电脑上,就在D:\Program Files\MySQL\MySQL Server 5.5\data文件夹下(这是安装的时候选择的文件夹,默认的是C:\ProgramData\MySQL\MySQL Server 5.5\data,我为了和原文件相对应,就改为D:\Program Files\MySQL\MySQL Server 5.5\data),如下图所示。
名称是Admin-PC.err,该文件夹每次启动MySQL服务时开始写入,MySQL服务关了停止写入。
由于这个文件太大,用系统自带的TXT 阅读器无法打开,所以要下载能打开大文件的TXT阅读器,下载地址:/soft/detail/18207.html?ald。
接着,按照教程完成以后,可以看到具体的表了,但是发生了两个错误,一个是有些表里的数据看不到,如下图所示:还有一个是有些表不能打开,一打开MySQL服务就停止运行,并报如下错误:两个错误我是这样解决的:第二个错误的错误日志是这样说的:InnoDB: Doing recovery: scanned up to log sequence number 42975370171 140601 0:10:32 InnoDB: Starting an apply batch of log records to the database... InnoDB: Progress in percents: 140601 0:10:32 InnoDB: Error: page 1572865 log sequence number 42975378768InnoDB: is in the future! Current system log sequence number 42975370171. InnoDB: Your database may be corrupt or you may have copied the InnoDB InnoDB: tablespace but not the InnoDB log files. SeeInnoDB: /doc/refman/5.5/en/forcing-innodb-recovery.html InnoDB: for more information.有一句是Your database may be corrupt or you may have copied the Inno DB tablespace but not the InnoDB log files,意思就是数据库有可能损坏或缺少日志文件。
接着我在网上看到一个资料,是这样说的:最近mysql数据库经常死掉,用命令net stop mysql命令也无法停掉,关闭To mcat的时候,出现Waiting for N instance(s) to be deallocated 信息。
查了下,大概就是程序没有对数据库连接释放,导致Connection泄露了。
因为用的是开元集成的平台,内部程序也不可能一下子给改掉的,就验证一下咯。
启动Tomcat,用户登录系统,用netstat -ano|findstr 8000命令来查看tomcat端口占用情况,可以看到8000端口会被用户的IP地址占用,而对应的PID是0,PID=0是什么呢,是叫System Idel Process的一个进程,这个进程是一个空闲的进程。
Tomcat一直被这个进程占用,没有释放,时间长了用户多了,mysql就死掉了,至于是不是程序没有释放连接,这个应该是没可能,因为系统已经用了2年,这种情况出现的太少了。
看一下mysql中表的情况,表的数据长度到达了几个G了,这种是BLOB类型的,存储的数据过多,这样的话是不是因为数据量太大,用户在用的时候对数据库进行操作,空间又不够,互相等待,造成死锁的问题呢?这年头,一定要注意备份啊,mysql要备份的东西比较多,(1)表结构文件,MySQL\MySQL Server 5.1\data目录下存放的就是数据库结构,会看到相应的数据库目录,数据库目录下面有.frm文件,.myd文件,.myi文件,这些文件都是表结构的文件。
(2)表数据文件,MySQL Datafiles/ibdata1文件(3)日志文件,MySQL\MySQL Server 5.1\data目录下面ib_logfile0文件和ib_logfile1文件。
二进制日志文件,如果你想要重新处理日志止的语句,这很有用。
你的数据库结构没有问题的情况下,想恢复数据,如果有(2)、(3)应该是没有问题的,当时我只有(2),把ibdata1文件copy过去,恢复数据还是出了很多状况,启动系统还是不能用的,mysql日志一直提示Your database may be corrupt or you may have copied the InnoDB tablespace but not the InnoDB log files.说多了都是泪,谁让咱是I T呢,系统坏掉了电话都要被用户打爆的节奏,hold不住,无所不用其极的,各种搜索资料啊,最后尝试一下大多数人的办法,设置innodb_force_recovery参数。
innodb_force_recovery影响整个InnoDB存储引擎的恢复状况。
默认为0,表示当需要恢复时执行所有的innodb_force_recovery可以设置为1-6,大的数字包含前面所有数字的影响。
当设置参数值大于0后,可以对表进行select,create,drop操作,但insert,update或者delete这类操作是不允许的。
1(SRV_FORCE_IGNORE_CORRUPT):忽略检查到的corrupt页。
2(SRV_FORCE_NO_BACKGROUND):阻止主线程的运行,如主线程需要执行full purge 操作,会导致crash。
3(SRV_FORCE_NO_TRX_UNDO):不执行事务回滚操作。
4(SRV_FORCE_NO_IBUF_MERGE):不执行插入缓冲的合并操作。
5(SRV_FORCE_NO_UNDO_LOG_SCAN):不查看重做日志,InnoDB存储引擎会将未提交的事务视为已提交。
6(SRV_FORCE_NO_LOG_REDO):不执行前滚的操作。
设置innodb_force_recovery=4重启msql,再恢复成默认值(即不需要再my.ini文件时设置innodb_force_recovery参数),重启mysql,重启Tomcat,OK了,太惊喜了。
菜鸟一个,其中原理讲的都不太清楚,经验之谈,仅供参考。
具体请参照/blog/2054392。
按照上面的思路,我将innodb_force_recovery该为5,结果可以了。
第二错误解决了。
我试了一下,第一个错误仍然没有解决,此时我想到第二个错误的错误日志(Your database may be corrupt or you may have copied the InnoDB tablespace but not t he InnoDB log files),是不是缺少了日志文件ib_logfile0和ib_logfile1导致的,于是我把原文件的ib_logfile0和ib_logfile1拷贝到安装目录下,为了保险,我把原文件的tgs数据库的所有文件都拷贝到相应的安装目录下。
此时数据库还无法连接,查看错误日志,报如下错误InnoDB: Error: log file .\ib_logfile0 is of different size 0 10485760 bytes。