• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MYSQL错误:Can’t open file: ‘×××.MYI’ (err

MYSQL错误:Can’t open file: ‘×××.MYI’ (err

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了MYSQL,错误,Can等相关知识,希望本文的分享对您有所帮助

这个错误是典型的mysql表受损造成的,解决的办法就是修复表,这个问题也是mysql经常容易出现的,mysql表和索引损坏的几率很大,但是修复也很方便

减少此类问题发生的办法就是尽量减少服务器无故断电,关闭服务器时,最后先手动关闭mysql数据库。
下面看看这个问题:

Can't open file: ‘×××.MYI' (errno: 145),这个错误一般就是你的数据库表文件损坏造成的,造成的原因大概是你把数据库文件挪来挪去的结果,当然不排除其他原因啊。
具体数据库出现错误的提示代码是:
Invalid SQL: ……
MySQL 错误!: 1016 (Can't open file: ‘×××.MYI' (errno: 145))
解决这个问题有多种方案,如果你的数据库可以远程链接或者你可以连接到你的远程服务器桌面,并且你的服务器系统刚好是Windows的,那么你可以:
运行->cmd
然后:mysql –h 主机地址 –u 用户名 –p
然后输入密码,连接数据库;
Use 数据库名称;
然后 输入:reapair table 出错的表名称,回车,这样修复一下就可以了,参考图片如下:

第二种方案,假设你只能运行PHP代码,那么也很简单,写一个php文件,链接上数据库,把这段代码:
Reapair table `表名`,
像发送 “select * ……”一样发送给mysql,也是可以的;

第三种方案,可简单了,打开你的myphpadmin,选中Can't open file:后面同名的表,有个下拉菜单“选中项”,选择“修复”如图:

就ok了。
如果你的数据库主机就你一个人用,并且你还能控制的话,建议你用Mysql自带的修复工具myisamchk.exe进行修复,操作如下:
修复前将mysql服务停止。
如果是Win主机,打开命令行方式,然后进入到mysql的/bin目录。
执行myisamchk -r 数据库所在路径\*.MYI
如果是类Unix主机,直接使用myisamchk -r 数据库目录\*.MYI

其它参考:
Mysql有的时候因为掉电或者其他原因导致数据库损坏,错信息如下:
MySql: Can't open file: 'sdb_sessions.MYI'. (errno: 145)
For more information, see Help and Support Center at
我们可以使用mysql自带的mysqlcheck命令来快速修复所有的数据库或者特定的数据库;例如
检查优化并修复所有的数据库用:
# mysqlcheck -A -o -r -p
Enter password:
guestbook.simpgb_avatars OK
guestbook.simpgb_bad_words OK
guestbook.simpgb_banlist OK
guestbook.simpgb_data OK
......
......
......
mysqlcheck语法/html/Program/Mssql/200711/130.html
修复指定的数据库用
# mysqlcheck -A -o -r Database_NAME -p
IXDBA.NET社区论坛
另外如果只是对某个表进行修复可以用:myisamchk或isamchk
其中myisamchk适用于MYISAM类型的数据表,而isamchk适用于ISAM类型的数据表。这两条命令的主要参数相同,一般新的系统都使用MYISAM作为缺省的数据表类型,这里以myisamchk为例子进行说明。当发现某个数据表出现问题时可以使用:
myisamchk tablename.MYI
进行检测,如果需要修复的话,可以使用:
myisamchk -of tablename.MYI
关于myisamchk的详细参数说明,可以参见它的使用帮助。需要注意的时在进行修改时必须确保MySQL服务器没有访问这个数据表,保险的情况下是最好在进行检测时把MySQL服务器Shutdown掉。
另外可以把下面的命令放在你的rc.local里面启动MySQL服务器前:
[ -x /tmp/mysql.sock ] && /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI
其中的/tmp/mysql.sock是MySQL监听的Sock文件位置,对于使用RPM安装的用户应该是/var/lib/mysql /mysql.sock,对于使用源码安装则是/tmp/mysql.sock可以根据自己的实际情况进行变更,而pathtochk则是 myisamchk所在的位置,DATA_DIR是你的MySQL数据库存放的位置。

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 分享下mysql各个主要版本之间的差异
  • MySQL essential版本和普通版本有什么区别?
  • redhat 5.4下安装MYSQL全过程
  • 如何用SQL命令查看Mysql数据库大小
  • 解析mysql中如何获得数据库的大小
  • 解析mysql修改为utf8后仍然有乱码的问题
  • 5个常用的MySQL数据库管理工具详细介绍
  • 解析在MySQL里创建外键时ERROR 1005的解决办法
  • 解析远程连接管理其他机器上的MYSQL数据库
  • mysql 精简过程(删除一些文件)

相关文章

  • 2017-05-11Mysql 数据库双机热备的配置方法
  • 2018-12-05有关小熊的文章推荐10篇
  • 2018-12-05tpcc-mysql安装测试与使用的实例教程
  • 2018-12-05mysql中如何配置ssl_key和ssl-cert与ssl-ca的路径以及建立ssl连接的实例
  • 2017-05-11MySQL数据库中的安全设置方案
  • 2017-05-11mysql优化之路----hash索引优化
  • 2018-12-05Oracle索引技术之如何建立最佳索引
  • 2017-05-11mysql慢查询使用详解
  • 2018-12-05mysql 性能调优五种方式
  • 2018-12-05oracle 10g 快照操作方法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 将MySQL数据库移植为PostgreSQL
    • SQLServer2005安装提示服务无法启动原因分析及解决
    • 非关系型数据库mongodb入门(一步一步 版)
    • 分享一个数据库连接不上的问题及解决方案
    • sqlserver中更改数据库所属为dbo的方法
    • mysql筛选GROUP BY多个字段组合时的用法分享
    • 教你解决怎么无法远程访问Mysql
    • 自动记录MySQL慢查询快照脚本
    • 关于MYSQL命令行模式管理的问题
    • SQL中的left join right join

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有