mysqldumpのインポートでエラー発生「Specified key was too long; max key length is 1000 bytes」解消方法はinnodbの設定・削除でした

mysqldumpのインポートでエラー発生「Specified key was too long; max key length is 1000 bytes」解消方法はinnodbの設定・削除でした

mysqldumpをしたファイルをインポートしようとしたところ、以下のエラーになりました。

ERROR 1071 Specified key was too long; max key length is 1000 bytes

結果としてはinnodb関連の設定だったのですが、終始試した手順を記録しておきます。

エラー発生から解消まで試した手順

 

先ず、エクスポート方法が2種類あるので両方試してみました。

  • mysqldumpする際に、圧縮ファイルとして出力してもダメ
  • mysqldumpする際に、圧縮しないで出力してもダメ

参照コマンド↓

https://normalblog.net/system/mysql/mysql_matome/

MySQLの再起動もしてみました。

# /etc/init.d/mysql restart

これでも解消せず、

 

ログからエラー内容確認してみました。

# tail -f /var/log/mysqld.log

 

このログファイルの中に、以下の内容が見つかりました。

InnoDB: Fatal error: cannot allocate the memory for the buffer pool

「innodbのバッファプールにメモリを割り当てられない」といったメッセージでした。

 

MySQLの設定ファイルmy.cnfの設定でinnodbのpoolサイズを変更しました。

6000Mになっていたので1024Mに減らしてみました。

# vi /etc/my.cnt
innodb_buffer_pool_size=1024M

 

これでMySQLの再起動をしてみました。

# /etc/init.d/mysql restart

これでも解消しません。

 

再びログからエラー内容確認

# tail -f /var/log/mysqld.log

以下のログが確認されました。

InnoDB: Error: log file ./ib_logfile0 is of different size 0 xxxxxxxxx bytes
InnoDB: than specified in the .cnf file 0 yyyyyyyyy bytes!

 

innodbのログファイルを削除しました

# rm /var/lib/mysql/ib_logfile0
# rm /var/lib/mysql/ib_logfile1

削除は怖いので実際には退避してから。

 

何度目かの正直でMySQLの再起動をしてみました

# /etc/init.d/mysql restart

 

これで解消出来てました!

やりたかったインポートも無事行えて終了です。

良かった。ひーはー

Comments

No comments yet. Why don’t you start the discussion?

コメントを残す

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