北京SEO

window下修复mysql表与数据库

2019/10/10/17:34:23  阅读:1835  来源:谷歌SEO算法  标签: AI科学家

在windows系统下使用mysql的朋友可能有时会碰到表突然坏了,出现:Table p is marked as crashed and should be repaired 等等问题,下面我来介绍修复mysql数据库与表的方法.

先来分析问题

一个损坏的表的典型症状如下:

1 、当在从表中选择数据之时,你得到如下错误:Incorrect key file for table: '...'. Try to repair it.

2 、查询不能在表中找到行或返回不完全的数据.

3 、Error: Table 'p' is marked as crashed and should be repaired.

4 、打开表失败: Can’t open file: ‘×××.MYI’(errno: 145).

如果你是myisam表可以常用使用下面方法来修复.

修复步骤:

1)修复前将mysql服务停止.

2)打开命令行方式,然后进入到mysql的/bin目录.

3)执行myisamchk --recover 数据库所在路径/*.MYI,注:提示后面不要跟随号.

语法:mysqlcheck -r 数据库名 表名 -uuser -ppass,代码如下:

%mysqlcheck -r sports_results mytable -uuser -ppass

sports_results.mytable OK利用mysqlcheck可以一次性修复多个表,只要在数据库名后列出相应表名即可(用空格隔开),或者数据库名后不加表名,将会修复数据库中的所有表,例如,代码如下:

  1. %mysqlcheck-rsports_resultsmytableevents-uuser-ppass
  2. sports_results.mytableOK
  3. sports_results.eventsOK
  4. --phpfensi.com
  5. %mysqlcheck-rsports_results-uuser-ppass
  6. sports_results.mytableOK
  7. sports_results.eventsOK

进行修复操作需以读/写方式锁定数据表,命令如下:

  1. %mysql
  2. mysql>usedb
  3. mysql>LOCKTABLEtable_nameWRITE;#以读/写方式锁定数据表
  4. mysql>FLUSHTABLEtable_name;

保持mysql客户端连接状态,切换到第二个shell窗口,运行修复命令:

% myisamchk --recover table_name

运行修复命令前最好先备份一下数据文件,修复完成后,切换回mysql客户端连接窗口,运行以下命令解除数据表锁定,代码如下:

  1. mysql>FLUSHTABLEtable_name;#使服务器觉察新产生的索引文件
  2. mysql>UNLOCKTABLE;

还可用以下命令锁定所有表,锁定后,所有用户就只能读不能写数据,这样就可使我们能安全地拷贝数据文件,代码如下:

mysql> FLUSH TABLES WITH READ LOCK;

下面是解除锁语句,代码如下:mysql> UNLOCK TABLES;

小提示:一般我们都会有phpmyadmin这个功能了,这样如果表坏了就可以直接利用phpmyadmin中功能进行表的修复,方法是一样的.

广告内容

window下修复mysql表与数据库 window下修复mysql表与数据库 window下修复mysql表与数据库

相关阅读

热门评论

sunshine技术博客 sunshine技术博客

sunshine技术博客

总篇数164

精选文章

RMAN中catalog和nocatalog区别介绍 小技巧:为Linux下的文件分配多个权限 zimbra8.5.1安装第三方签名ssl证书的步骤 解决mysql不能远程连接数据库方法 windows服务器mysql增量备份批处理数据库 mysql中slow query log慢日志查询分析 JavaScript跨域问题总结 Linux下负载均衡软件LVS配置(VS/DR)教程 mysql中权限参数说明 MYSQL(错误1053)无法正常启动

SEO最新算法