• 技术文章 >数据库 >mysql教程

    Mysql存储引擎MyISAM的常见问题(表损坏、无法访问、磁盘空间不足)_MySQL

    2016-05-27 13:44:57原创779
    本文为大家分享了解决Mysql存储引擎MyISAM常见问题的方法,供大家参考,具体内容如下

    一、处理MyISAM存储引擎的表损坏

    在使用MySQL,可能会遇到过MyISAM存储引擎的表损坏的情况。如以下情况:

    .frm被锁定不能修改

    找不到.myi文件(索引文件)

    意外结束记录

    文件被毁坏

    从表处理器得到错误nnn

    解决办法1:

    使用MySQL自带的myisamchk工具进行修复
    打开bin目录,可以看到该工具

    这里写图片描述

    命令如下
    myisamchk -r tablename
    r代表recover

    myisamchk -o tablename
    -o参数代表–safe-recover 可以进行更安全的修复

    解决办法2:
    使用MySQL的CHECK table和repair table命令进行修复
    check table用来检查表是否有损坏,repair table用来对坏表进行修复。

    二、MyISAM表过大,无法访问问题

    首先我们可以通过myisamchk命令来查看MyISAM表的情况。如下图,我查看admin表

    这里写图片描述

    datefile length代表当前文件大小
    keyfile length代表索引文件大小
    max datefile length 代表最大文件大小
    max keyfile length 代表最大索引大小
    可以通过如下命令来进行扩展数据文件大小
    alter table table_name MAX_ROWS=88888888 AVG_ROW_LE=66666

    三、数据目录磁盘空间不足

    1、针对MyISAM存储引擎

    可以将数据目录和索引目录存储到不同的磁盘空间。

    2、针对InnoDB存储引擎

    对于InnoDB存储引擎的表,因为数据文件和索引文件时存放在一起的。所以无法将他们分离。当磁盘空间出现不足时候,可以增加一个新的数据文件,这个文件放在有充足空间的磁盘上。具体实现是通过InnoDB_data_file_path中增加此文件。
    innodb_data_file_path=/home/mysql/data:10000M;/user/mysql/data:10000M:autoextend
    参数修改之后,需要重启服务器,才可以生效。

    四、同一台主机上安装多个Mysql

    除了每个Mysql安装目录不能相同外,还需要的是port和socket不能一样。
    mysql.sock就是客户端连接与mysql间通信用的。socket文件,只能本机使用,远程连接要通过tcp/ip了。

    以上就是Mysql存储引擎MyISAM常见问题解析,谢谢大家的阅读。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:MySQL MyISAM 优化设置点滴_MySQL 下一篇:MySQL修改时区的方法小结_MySQL
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• MySQL中关于超键和主键及候选键的区别分析• mysql函数的作用是什么• 怎么解决mysql服务无法启动1069• mysql的case when怎么用• MySQL语法解析之表锁定
    1/1

    PHP中文网