1. ホーム
  2. データベース

mysqlのエラーです。1406, データが長すぎてカラムに入りません

2022-03-01 04:08:53
<パス

mysql がエラーを報告しました。1406, "データが長すぎてカラムに入りません。

pymysql.err.DataError: (1406, "Data too long for column 'songlist_url' at row 1")。



データベースに設定されている文字の長さが足りないからなのか、長さを増やしてもエラーになります。別の見方をすれば、中国語が入力されているので、エンコードに問題があるとも考えられます。

<ブロッククオート

MySQLのstatus;を見てみると。

サーバーの文字セット: latin1 Db の文字セット: latin1 クライアント



characterset: latin1 latin1 を utf8 エンコーディングに置き換えてください。

mysql> set character_set_client=utf8 ; mysql> set



character_set_connection=utf8 ; mysql> set character_set_database=utf8



; mysql> set character_set_server=utf8 ;

そしてstatus;でエンコーディングがutf8に変換されたことを確認し、実行を継続する...。

しかし、まだエラーが報告されます: pymysql.err.DataError: (1406, "列に対してデータが長すぎる)

stackoverflowでメソッドを発見

MySQLに設定します。

mysql> SET @@global.sql_mode= '';



そして、実行できるようになりました!!!

その理由は

MySQL は、指定されたカラムを超える挿入値を切り捨てます。



幅。これをエラーなしにするためには、MySQL のモードを



はSTRICTを使用してください。



おそらく、MySQL は指定されたカラム幅を超える挿入値を切り捨てることを意味します。このエラーを報告しないようにするには、MySQL スキーマを変更して、ストリクトモードを使用しないようにします。