最近、共有ホストから VPS への非常に大きなクライアント データベースの移行に取り組んでおり (メイン データベースのサイズだけで約 5GB です)、シェルを介してテーブルの大部分を正常に移行することができました (パケットの上限を 2GB に増やします) 特に問題を引き起こしているテーブルが 1 つあります。
問題は、テーブルの中央に約 20k 行があり、phpMyAdmin でもシェル経由でもアップロードされないことです。これは、base64 でエンコードされたイメージが含まれているため、上限が設定されていても、mySQL が「最大パケット到達エラー」をスローし続けるためです。 2GBで。
私はサーバー管理者と彼のサポート チームに連絡を取ろうとしましたが、彼らもこのデータの処理方法について困惑しているので、どんな支援も大歓迎です。
また、問題のテーブルは非圧縮で 160 MB ほどしかなく、問題のセグメント (他のセグメントから分割されたもの) だけでも 60 MB しかないため、パケットの上限は問題ではないと思います。
更新パケットサイズを表示するクエリを実行したところ、MySQL は max_allowed_packet 値の下に 1048576 を示しました
update2 MySQLで警告を表示すると、すべての列にデータがない行に関するエラーが発生し続けますが、空の文字列をNullに置き換えてもエラーが続くため、まだ混乱しています
元のクライアント サーバーで IonCube が有効になっているように見えるため、それがエラーの原因であるかどうかはわかりません。