mysqldumpをしたファイルをインポートしようとしたところ、以下のエラーになりました。
1 |
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の再起動もしてみました。
1 |
# /etc/init.d/mysql restart |
これでも解消せず、
ログからエラー内容確認してみました。
1 |
# tail -f /var/log/mysqld.log |
このログファイルの中に、以下の内容が見つかりました。
1 |
InnoDB: Fatal error: cannot allocate the memory for the buffer pool |
「innodbのバッファプールにメモリを割り当てられない」といったメッセージでした。
MySQLの設定ファイルmy.cnfの設定でinnodbのpoolサイズを変更しました。
6000Mになっていたので1024Mに減らしてみました。
1 2 |
# vi /etc/my.cnt innodb_buffer_pool_size=1024M |
これでMySQLの再起動をしてみました。
1 |
# /etc/init.d/mysql restart |
これでも解消しません。
再びログからエラー内容確認
1 |
# tail -f /var/log/mysqld.log |
以下のログが確認されました。
1 2 |
InnoDB: Error: log file ./ib_logfile0 is of different size 0 xxxxxxxxx bytes InnoDB: than specified in the .cnf file 0 yyyyyyyyy bytes! |
innodbのログファイルを削除しました
1 2 |
# rm /var/lib/mysql/ib_logfile0 # rm /var/lib/mysql/ib_logfile1 |
削除は怖いので実際には退避してから。
何度目かの正直でMySQLの再起動をしてみました
1 |
# /etc/init.d/mysql restart |
これで解消出来てました!
やりたかったインポートも無事行えて終了です。
良かった。ひーはー