当前位置: 首页 > news >正文

MYSQL错误:Can’t open file: ‘×××...'

这个错误是典型的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 出错的表名称,回车,这样修复一下就可以了,参考图片如下:

image002

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

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

image004

就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数据库存放的位置。

 

 

相关文章:

  • 浏览器无法更新服务状态位。数据有错误
  • ubuntu开机画面的修改
  • Ubuntu 12.04忘记用户密码的解决办法
  • ubuntu 删除自带的游戏
  • Linux 下openOffice的安装
  • Linux下Openoffice乱码解决方法
  • MIME type类型
  • Ubuntu 安装字体方法
  • Ubuntu中查看网卡信息的基础知识
  • ubuntu装RTL8111/8168B网卡驱动
  • Ubuntu 12.04安装QQ for Linux
  • ubuntu 自定义分辨率
  • ubuntu12.04安装中文输入法(ibus)和开机自动启动ibus应用
  • ExtJs xtype一览
  • extjs tabpanel子页面跳转
  • 30天自制操作系统-2
  • Angular Elements 及其运作原理
  • Git学习与使用心得(1)—— 初始化
  • Java 内存分配及垃圾回收机制初探
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • 7行Python代码的人脸识别
  • 仓管云——企业云erp功能有哪些?
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (windows2012共享文件夹和防火墙设置
  • (搬运以学习)flask 上下文的实现
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (转)我也是一只IT小小鸟
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .NET/C# 使用反射注册事件
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • // an array of int
  • :“Failed to access IIS metabase”解决方法
  • @media screen 针对不同移动设备
  • @ModelAttribute使用详解
  • @RunWith注解作用
  • @test注解_Spring 自定义注解你了解过吗?
  • [ Linux ] Linux信号概述 信号的产生
  • [2019.2.28]BZOJ4033 [HAOI2015]树上染色
  • [android] 天气app布局练习
  • [Deepin 15] 编译安装 MySQL-5.6.35
  • [Hadoop in China 2011] 蒋建平:探秘基于Hadoop的华为共有云
  • [HDU3710]Battle over Cities
  • [leetcode] Longest Palindromic Substring
  • [LeetCode] Minimum Path Sum
  • [Linux内存管理-分页机制]—把一个虚拟地址转换为物理地址
  • [Machine Learning] Learning with Noisy Labels
  • [MQ]常用的mq产品图形管理web界面或客户端
  • [NHibernate]一对多关系(关联查询)
  • [NOIP2005]过河
  • [NOIP2014] 提高组 洛谷P1941 飞扬的小鸟
  • [python] `sys.settrace` 跟踪函数
  • [RK3568 Android11] Binder通信整体框架