日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 修复模式_Mysql表修复

發布時間:2023/12/10 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 修复模式_Mysql表修复 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

mysqlcheck

mysqlcheck客戶端可以檢查和修復MyISAM表。它還可以優化和分析表。mysqlcheck的功能類似myisamchk,但其工作不同。

主要差別是當mysqld服務器在運行時必須使用mysqlcheck,而myisamchk應用于服務器沒有運行時。使用mysqlcheck的好處是不需要停止服務器來檢查或修復表。

mysqlcheck為用戶提供了一種方便的使用SQL語句CHECK TABLE、REPAIR TABLE、ANALYZE TABLE和OPTIMIZE TABLE的方式。它確定在要執行的操作中使用使用哪個語句,然后將語句發送到要執行的服務器上。

示例

mysqlcheck -B 指定數據庫 -r -S /data/mysql2/mysql2.sock -u root -p'test' >> /var/log/mysqlcheck.log

常用選項

--optimize,-o 優化表

-h 主機地

-P 端口號

-F 只檢查沒有正確關閉的表

-r 執行可以修復大部分問題的修復,只是唯一值不唯一時不能修復。

-a 分析表

-c 檢查表,默認選項

-m 中等的檢查

-e 完全檢查,很慢

--database,-B 指定庫 如果沒指定,表示全部庫

--all--database,-A 所有庫

--fast,-F 只檢查沒有正確關閉的表。

--quick,-q 如果你正使用該選項在檢查表,它防止掃描行以檢查錯誤鏈接的檢查。這是最快的檢查方法。 如果你正使用該選項在修復表,它嘗試只修復索引樹。這是最快的修復方法。

--silent,-s 沉默模式。只打印錯誤消息

--tables 覆蓋---database或-B選項。選項后面的所有參量被視為表名。

--socket=/-S 指定套接字

myisamchk

myisamchk,只適用于myisam引擎,使用時需要關閉數據庫

myisamchk表損壞原因

服務器突然斷電導致數據文件損壞;強制關機,沒有先關閉mysql 服務;mysqld 進程在寫表時被殺掉。因為此時mysql可能正在刷新索引。

磁盤損壞。

服務器死機。

mysql 本身的bug 。

MySQL中MyISAM表損壞的癥狀

查詢數據時報出錯誤:Incorrect key file for table: '...'. Try to repair it

查詢不能在表中找到行或返回不完全的數據。

Error: Table '...' is marked as crashed and should be repaired 。

打開表失敗: Can't open file: '×××.MYI' (errno: 145) 。

常見選項

-q 快速修復,一般和-r一起使用,快速修復

-r 修復模式

-o 能修復-r不能修復的問題。一般會有提示使用-o

-i 打印被檢測表的信息

-m 中等的檢查

-e 最徹底的檢查

-a 分析表

-s 安靜的

-B 將.MYD文件備份為file_name-time.BAK

--sort-index, -S 以從高到低的順序排序索引樹塊。這將優化搜尋并且將使按鍵值的表掃描更快。

-f 強制修復,一般不使用,可能會有數據丟失

myisamchk默認只用3M的內存來修復,如果要修復大表的話,顯然速度會巨慢,我們可以通過為myisamchk設置更多的內存,來使其運行的更快,

myisamchk --sort_buffer_size=16M --key_buffer_size=16M --read_buffer_size=1M --write_buffer_size=1M

一般sort_buffer_size的大小16m就足夠用了。

myisamchk默認使用選項“--tmpdir”作為臨時文件的,如果tmpdir指定內存的話,恢復的表比較大,很容易報內存的錯誤,所以我們可以用tmpdir指定一個比較大的文件系統

myisamchk --sort_buffer_size=16m --key_buffer_size=16m --read_buffer_size=2m --write_buffer_size=1m --tmpdir=/tmp

執行myisam表的恢復只要是修復表的三個文件,最常發生問題的文件是數據文件和索引文件

tbl_name.frm:定義(格式)文件

tbl_name.MYD:數據文件

tbl_name.MYI:索引文件

示例

首先進入到對應的數據庫下:cd /data/mysql/game | 也可以直接指定表的路徑,從而不用進入目錄

檢查表

#快速的檢查

myisamchk -im /usr/local/mysql/data/testx/t2

#只檢查沒有正常關閉的表

myisamchk -iFm /usr/local/mysql/data/testx/t2

#僅顯示表的最重要的信息

myisamchk -eim /usr/local/mysql/data/testx/t2

修復表

#常用的修復命令

myisamchk -rq tbl_name #快速修復表,只修復索引

myisamchk -Br tbl_name #備份并修復表

總結

以上是生活随笔為你收集整理的mysql 修复模式_Mysql表修复的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。