怎么查看mysql数据库中的表是否损坏

作者&投稿:佼储 (若有异议请与网页底部的电邮联系)
~

可以使用语句检查表。如果结果的msg_text部分是好的,那么你的表是健康的。反之,则表明mysql数据库中的表有损坏。另外有些厉害的高手一额可以通过运行脚本来检测。

MyISAM 表可以采用以下方法进行修复 :使用 reapair table 或myisamchk 来修复。如果修复无效,采用备份恢复表。

阶段1 :检查你的表

如果你有很多时间,运行myisamchk *.MYI 或myisamchk -e *.MYI 。使用-s (沉默)选项禁止不必要的信息。如果mysqld 服务器处于宕机状态,应使用--update-state 选项来告诉myisamchk 将表标记为' 检查过的' 。

你必须只修复那些myisamchk 报告有错误的表。对这样的表,继续到阶段2 。如果在检查时,你得到奇怪的错误( 例如out of memory 错误) ,或如果myisamchk 崩溃,到阶段3 。

阶段2 :简单安全的修复

注释:如果想更快地进行修复,当运行myisamchk 时,你应将sort_buffer_size 和Key_buffer_size 变量的值设置为可用内存的大约25% 。

首先,试试myisamchk -r -q tbl_name(-r -q 意味着“ 快速恢复模式”) 。这将试图不接触数据文件来修复索引文件。如果数据文件包含它应有的一切内容和指向数据文件内正确地点的删除连接,这应该管用并且表可被修复。开始修复下一张表。否则,执行下列过程:

在继续前对数据文件进行备份。使用myisamchk -r tbl_name(-r 意味着“ 恢复模式”) 。这将从数据文件中删除不正确的记录和已被删除的记录并重建索引文件。

如果前面的步骤失败,使用myisamchk --safe-recover tbl_name 。安全恢复模式使用一个老的恢复方法,处理常规恢复模式不行的少数情况( 但是更慢) 。如果在修复时,你得到奇怪的错误( 例如out of memory 错误) ,或如果myisamchk 崩溃,到阶段3 。

阶段3 :困难的修复

只有在索引文件的第一个16K 块被破坏,或包含不正确的信息,或如果索引文件丢失,你才应该到这个阶段。在这种情况下,需要创建一个新的索引文件。按如下步骤操做:

把数据文件移到安全的地方。使用表描述文件创建新的( 空) 数据文件和索引文件:

shell> mysql db_name

mysql> SET AUTOCOMMIT=1;

mysql> TRUNCATE TABLE tbl_name;

mysql> quit

如果你的MySQL 版本没有TRUNCATE TABLE ,则使用DELETE FROM tbl_name 。将老的数据文件拷贝到新创建的数据文件之中。回到阶段2 。现在myisamchk -r -q 应该工作了。你还可以使用REPAIR TABLE tbl_name USE_FRM ,将自动执行整个程序。

阶段4 :非常困难的修复

只有.frm 描述文件也破坏了,你才应该到达这个阶段。这应该从未发生过,因为在表被创建以后,描述文件就不再改变了。

从一个备份恢复描述文件然后回到阶段3 。你也可以恢复索引文件然后回到阶段2 。对后者,你应该用myisamchk -r 启动。

如果你没有进行备份但是确切地知道表是怎样创建的,在另一个数据库中创建表的一个拷贝。删除新的数据文件,然后从其他数据库将描述文件和索引文件移到破坏的数据库中。这样提供了新的描述和索引文件,但是让.MYD 数据文件独自留下来了。回到阶段2并且尝试重建索引文件。



mysql数据库中怎么查看自己创建的数据库
答:查看自己创建的数据库,跟查看别人创建的数据库没有什么分别,可以用下列语句来查看某个数据库:查看创建数据库的命令 show create database dbName;查看所有数据库命令 show databases;查看某个数据库的命令 show database dbName;前往操作某个数据库 use dbName;...

linux中怎么查看mysql数据库
答:mysql -uroot -p输入root密码进去即可查看。具体情况简单说明:1、显示数据库 show databases;2、选择数据库 use 数据库名;3、显示数据库中的表 show tables;4、显示数据表的结构 describe 表名;5、显示表中记录 SELECT * FROM 表名;6、建库 create databse 库名。

如何查看mysql数据库表所使用的引擎(转载)
答:我们怎么样才能准确的查看mysql的存储引擎呢,下面我给大家介绍两种正确的方式。1)正确方式一: SHOW TABLE STATUS from 数据库库名 where Name=‘表名‘2)mysqlshow -u 数据库登录帐号 -p有时的时候,我们想查看以下mysql的表的存储引擎是什么类型的,不用说,大家直接想到的就是使用show create ...

mysql中如何查看数据库表的创建时间?
答:方法:查看数据库表的创建时间可以在information_schema中查看 information_schema数据库表说明:SCHEMATA表:提供了当前mysql实例中所有数据库的信息。是show databases的结果取之此表。TABLES表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。

mysql数据库中查看当前使用的数据库是哪个数据库
答:查询当前连接数据库别名 select database();或者命令行模式下 status;里有个Current database 项

怎么打开/查看MySQL的SQL记录
答:mysql在执行sql的时候会在日志当中记录很多信息,当然包括执行的所有语句。下面以使用navicat for mysql为例,来展示一下如何打开/查看MySQL的SQL记录:打开navicat for mysql,并连接到数据库,选择一个要操作的数据库。点击左上角的【工具】,选择历史日志选项,或者直接【ctrl+H】。

mysql中怎么查看数据表内容
答:启动,关闭MySQL 在CMD中输入: net start mysql 在服务管理器中启动,关闭.MySQL登录在CMD中输入 mysql –h localhost –u root -p 查看数据库: show databases;使用数据库: use db_name;查看表: show tables;查看表结构: describe table_name;要是不想用命令就在安装MYSQL的浏览器,直接在...

mysql数据库中怎么查看自己创建的数据库
答:查看自己创建的数据库,跟查看别人创建的数据库没有什么分别,可以用下列语句来查看某个数据库:查看创建数据库的命令 show create database dbName;查看所有数据库命令 show databases;查看某个数据库的命令 show database dbName;前往操作某个数据库 use dbName;

怎样用SQL语句查询一个数据库中的所有表
答:查询一个数据库中的所有表sql语句是show tables;显示所有数据库的命令是:show databases;要查看某个数据库先要进入数据库使用user <数据库名>命令;进入数据库之后才能查询数据库中有哪些表。使用以下命令即可查出所有表:show tables;

如何使用系统帮助查找MySQL中double数据类型的信息,并找到double类型有...
答:你可以使用 MySQL 的系统帮助来查找 double 数据类型的信息。在 MySQL 中,可以使用 DESC 命令来查看表的结构信息,包括每个列的数据类型。下面是查找 double 数据类型信息的步骤:打开 MySQL 命令行或者其他 MySQL 客户端;连接到你的 MySQL 数据库;选择你要查找信息的数据库:USE database_name;,...