まとまりのないブログ

something which something is something

mysql

myisamchk: error: myisam_sort_buffer_size is too small

投稿日:

myisamchkを実行したときに

myisamchk: error: myisam_sort_buffer_size is too small
Try fixing it by using the –safe-recover (-o), the –force (-f) option or by not using the –quick (-q) flag

というエラーが発生してテーブルの修復が完了することができなかった。サイズが小さすぎる、デフォルトではたしか64M程度ということなので、それでは大きめにメモリサイズを指定して実行してみたところ、

cdn-project:/usr/local/mysql# ./bin/myisamchk -r –myisam_sort_buffer_size=2024M ./data/auc/aucTable.MYI
./bin/myisamchk: unknown variable ‘myisam_sort_buffer_size=2024M’

そんな変数は知らないということらしい。それはないだろう・・・。myisam_sort_buffer_sizeの変わりにsort_buffer_sizeを指定することにした。

cdn-project:/usr/local/mysql# ./bin/myisamchk -r –sort_buffer_size=2024M ./data/auc/aucTable.MYI
– recovering (with sort) MyISAM-table ‘./data/auc/aucTable.MYI’
Data records: 0
– Fixing index 1
Wrong bytesec: 169-186-231 at 3476352160; Skipped
Wrong bytesec: 169-186-231 at 3476352160; Skipped
– Fixing index 2
Data records: 49302846

sort_buffer_sizeを2GB指定して修復を実行したらとりあえずは完了した。mysqlのデーモンを起動したら問題なく動作するようになった。起動後に一応テーブルのチェックをしてみる。

mysql> check table aucTable;

+————–+——-+———-+———-+
| Table | Op | Msg_type | Msg_text |
+————–+——-+———-+———-+
| auc.aucTable | check | status | OK |
+————–+——-+———-+———-+
1 row in set (8 min 36.97 sec)

問題なし。テーブルの最適化ということができるらしいので気休めにやっておく。

mysql> optimize table aucTable;
+————–+———-+———-+———-+
| Table | Op | Msg_type | Msg_text |
+————–+———-+———-+———-+
| auc.aucTable | optimize | status | OK |
+————–+———-+———-+———-+
1 row in set (19 min 21.08 sec)

最適かされたのかされていないのか不明。

-mysql

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

no image

mysqlのmy.iniの標準値のメモ

mysqlのmy.iniファイルのサンプルの設定ファイルの値がどのように設定されているかチェック。mysqldの設定例を抜き出してみる。設定するときの参考にはなるだろうと思うので。

no image

Wrong bytesec: 49-48-48 at linkstart: 14313808772

またテーブルのクラッシュ。mysqlのテーブルがクラッシュする頻度が激増してきた。以前はこんなことなかったのだが・・・。今は一日一回発生して絶えず見張っていなければならないという状態になってしまってい …

no image

mariadbのポートを変更する

mariadbのコンフィグファイルであるmy.cnfにポートの設定を追加する。mysqldセクションとportを下記のように追加して再起動する。そしてmysqlにログインして show variabl …

no image

Blitzという名前のついたバルクメモリ

PCがやたらとフリーズするのでなんでだろうかと悩んでいた原因がわかった。アプライドの特価品メモリを使っていたのが原因だった。メモリの相性が悪かった、というより不良品のメモリであるというのが正しい表現だ …

no image

古いMySQLをインストールした時にlibncursesw.so.5がないと怒られた

MySQL5.087をインストールしてデーモン起動してログインしようとしたら # ./bin/mysql -u mysql ./bin/mysql: error while loading share …