程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> Mysql存儲引擎MyISAM的常見問題(表損壞、無法訪問、磁盤空間不足)

Mysql存儲引擎MyISAM的常見問題(表損壞、無法訪問、磁盤空間不足)

編輯:關於MYSQL數據庫

本文為大家分享了解決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常見問題解析,謝謝大家的閱讀。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved