この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
[mysqldump]MySQL インポート時に発生する geometry のエラーに対応する
ある日、mysqldump でバックアップを取ったデータベースを別データベースにインポートしようとしたところ
ERROR 1416 (22003) at line 898: Cannot get geometry object from data you send to the GEOMETRY field
のエラーが発生しました。解決策の探す羽目になったため、備忘録として解決方法と原因を残します。
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進数のデータとして変換することによりエラーの発生を防止することができます。
ウェブプログラミングについては下記の本も参考になるので、スキルアップにお役立てください。