Mysql存儲(chǔ)引擎MyISAM的常見問題(表損壞、無法訪問、磁盤空間不足)
本文為大家分享了解決Mysql存儲(chǔ)引擎MyISAM常見問題的方法,供大家參考,具體內(nèi)容如下
一、處理MyISAM存儲(chǔ)引擎的表損壞
在使用MySQL,可能會(huì)遇到過MyISAM存儲(chǔ)引擎的表損壞的情況。如以下情況:
.frm被鎖定不能修改
找不到.myi文件(索引文件)
意外結(jié)束記錄
文件被毀壞
從表處理器得到錯(cuò)誤nnn
解決辦法1:
使用MySQL自帶的myisamchk工具進(jìn)行修復(fù)
打開bin目錄,可以看到該工具
命令如下
myisamchk -r tablename
r代表recover
或
myisamchk -o tablename
-o參數(shù)代表–safe-recover 可以進(jìn)行更安全的修復(fù)
解決辦法2:
使用MySQL的CHECK table和repair table命令進(jìn)行修復(fù)
check table用來檢查表是否有損壞,repair table用來對(duì)壞表進(jìn)行修復(fù)。
二、MyISAM表過大,無法訪問問題
首先我們可以通過myisamchk命令來查看MyISAM表的情況。如下圖,我查看admin表
datefile length代表當(dāng)前文件大小
keyfile length代表索引文件大小
max datefile length 代表最大文件大小
max keyfile length 代表最大索引大小
可以通過如下命令來進(jìn)行擴(kuò)展數(shù)據(jù)文件大小
alter table table_name MAX_ROWS=88888888 AVG_ROW_LE=66666
三、數(shù)據(jù)目錄磁盤空間不足
1、針對(duì)MyISAM存儲(chǔ)引擎
可以將數(shù)據(jù)目錄和索引目錄存儲(chǔ)到不同的磁盤空間。
2、針對(duì)InnoDB存儲(chǔ)引擎
對(duì)于InnoDB存儲(chǔ)引擎的表,因?yàn)閿?shù)據(jù)文件和索引文件時(shí)存放在一起的。所以無法將他們分離。當(dāng)磁盤空間出現(xiàn)不足時(shí)候,可以增加一個(gè)新的數(shù)據(jù)文件,這個(gè)文件放在有充足空間的磁盤上。具體實(shí)現(xiàn)是通過InnoDB_data_file_path中增加此文件。
innodb_data_file_path=/home/mysql/data:10000M;/user/mysql/data:10000M:autoextend
參數(shù)修改之后,需要重啟服務(wù)器,才可以生效。
四、同一臺(tái)主機(jī)上安裝多個(gè)Mysql
除了每個(gè)Mysql安裝目錄不能相同外,還需要的是port和socket不能一樣。
mysql.sock就是客戶端連接與mysql間通信用的。socket文件,只能本機(jī)使用,遠(yuǎn)程連接要通過tcp/ip了。
以上就是Mysql存儲(chǔ)引擎MyISAM常見問題解析,謝謝大家的閱讀。
- MySQL有壞快后drop表就crash了的解決方案
- MySQL表數(shù)據(jù)文件損壞導(dǎo)致數(shù)據(jù)庫無法啟動(dòng)的原因與解決方案
- 解決MySQL數(shù)據(jù)庫意外崩潰導(dǎo)致表數(shù)據(jù)文件損壞無法啟動(dòng)的問題
- shell腳本自動(dòng)修復(fù)mysql損壞的表
- MySQL數(shù)據(jù)庫INNODB表損壞修復(fù)處理過程分享
- 一次非法關(guān)機(jī)導(dǎo)致mysql數(shù)據(jù)表損壞的實(shí)例解決
- MYSQL數(shù)據(jù)表損壞的原因分析和修復(fù)方法小結(jié)(推薦)
- MySQL數(shù)據(jù)表損壞的正確修復(fù)方案
- Mysql 壞表修復(fù)的幾種解決方案
相關(guān)文章
Mysql安裝 Navicat 出現(xiàn)1044/1045錯(cuò)誤的解決方法
Navicat 出現(xiàn)1044/1045錯(cuò)誤是網(wǎng)友們一直頭疼的問題,本文以此進(jìn)行詳細(xì)介紹,需要了解的朋友可以參考下2012-12-12
MySQL數(shù)據(jù)庫備份工具mylvmbackup的使用解讀
這篇文章主要介紹了MySQL數(shù)據(jù)庫備份工具mylvmbackup的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-05-05
MySQL按天分組統(tǒng)計(jì)一定時(shí)間內(nèi)的數(shù)據(jù)實(shí)例(沒有數(shù)據(jù)補(bǔ)0)
我們?cè)谟肕ysql制作數(shù)據(jù)可視化圖表時(shí)候,經(jīng)常需要按照天對(duì)數(shù)據(jù)進(jìn)行分組統(tǒng)計(jì),下面這篇文章主要給大家介紹了關(guān)于MySQL按天分組統(tǒng)計(jì)一定時(shí)間內(nèi)的數(shù)據(jù),沒有數(shù)據(jù)補(bǔ)0的相關(guān)資料,需要的朋友可以參考下2023-03-03
MySQL Semisynchronous Replication介紹
這篇文章主要介紹了MySQL Semisynchronous Replication介紹,本文講解了Semisynchronous Replication 定義、,需要的朋友可以參考下2015-05-05
CentOS7下mysql 8.0.16 安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了CentOS7下mysql 8.0.16 安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05
解決mySQL中1862(phpmyadmin)/1820(mysql)錯(cuò)誤的方法
最近在工作中發(fā)現(xiàn)一直在運(yùn)行的mysql突然報(bào)錯(cuò)了,錯(cuò)誤提示1820,phpmyadmin也不能登陸,錯(cuò)誤為1862,雖然摸不著頭腦但只能想辦法解決,下面這篇文章給大家分享了解決這個(gè)問題的方法,有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-12-12

