[MySQL]importする際の「Cannot get geometry ~」エラーに対処する

[MySQL]importする際の「Cannot get geometry ~」エラーに対処する

mysql_logo_large

[mysqldump]MySQL インポート時に発生する geometry のエラーに対応する

ある日、mysqldump でバックアップを取ったデータベースを別データベースにインポートしようとしたところ

ERROR 1416 (22003) at line 898: Cannot get geometry object from data you send to the GEOMETRY field

のエラーが発生しました。解決策の探す羽目になったため、備忘録として解決方法と原因を残します。

Advertisement

geometry エラーの解決方法

エラーの解決方法は、mysql のバックアップである mysqldump を実行するときに

--hex-blob

のオプションを付けることです。

実際に mysqldump を実行する際の実行例としては、

mysqldump -hlocalhost -p hoge --hex-blob > db_mysqldump.sql

といった記述になります。

〇MySQL 公式の「--hex-blob」の解説ページ
https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html#option_mysqldump_hex-blob

 

geometry エラーの原因

MySQL をインポートするデータの中に BLOB 型や GEOMETRY 型がある場合、データの構成上、そのままではインポートできないデータが生成される場合があります。

そこでインポートできないデータが出来た場合の対処方法として、「--hex-blob」を付けることにより、該当のデータを「0x123456789ABCDEF」といった16進数のデータとして変換することによりエラーの発生を防止することができます。

Advertisement

この記事が気に入ったら
いいね ! をお願いします

Twitter で

web開発カテゴリの最新記事