質問: perlのdbiよりmysqlにアクセスすると perlのdbiよりmysqlにアクセスすると dbd::mysql::db do failed: data too long for column...のエラーが発生します。 つまり長すぎるデータを格納しようとしてエラーが出ているようです。 格納するデータの文字コードはutf-8です。 カラムは試しにvarchar(255)にしていますので、おそらく文字コードが原因ではないかと推測しています。 phpmyadminから show variables;コマンドを実行したところ 文字コード関係は以下の設定です。 character_set_client utf8 character_set_connection utf8 character_set_database utf8 character_set_filesystem binary character_set_results utf8 character_set_server sjis character_set_system utf8 character_sets_dir c:\program files\mysql\mysql server 5.0\share\char... collation_connection utf8_general_ci collation_database utf8_general_ci collation_server sjis_japanese_ci 開発環境は mysql - 5.0.24-community-nt phpmyadmin - 2.8.2.2 mysql クライアントバージョン: 4.1.7 os;win_xp active perl 5.8.8 です。 お気付きの点がございましたらご指摘宜しくお願いいたします。
回答: >phpmyadminから show variables;コマンドを実行したところ perlからの要求が問題になっているのだから、phpmyadminからでなく、perlから実行して確認してください。 あるいは、perlからmysql接続後、最初に set names を投げてみてください。