バージョン選択

フォーラム

メニュー

オンライン状況

109 人のユーザが現在オンラインです。 (99 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 109
もっと...

サイト内検索

その他 > その他 > MYSQLで登録エラー#1406 - Data too long for column

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
Wsm
投稿日時: 2007/10/2 13:58
対応状況: −−−
半人前
登録日: 2007/9/19
居住地:
投稿: 20
MYSQLで登録エラー#1406 - Data too long for column
EC-CUBEを構築しまして
大量のマスタのデータを一括でインサートしたく
MySQLのエディターを使っていますが、、
phpMyAdmin、Navicat、MySQL Administrator と Query Browser(http://www-jp.mysql.com/products/tools/

どうもシステムから登録された漢字、カタカナなど登録内容が
EUC-JPでEncodingされなく文字化けしてしまうのです。

クエリーでインサートしようとしても下記のようなエラーが
出てしまいます。

#1406 - Data too long for column at row 1

何か設定が足りないでしょうか。
皆さんはどんなMySQLエディターってどんなのを使われてますか。

guestkun
投稿日時: 2007/10/4 21:10
対応状況: −−−
半人前
登録日: 2007/9/26
居住地: 関西
投稿: 28
Re: MYSQLで登録エラー#1406 - Data too long for column
このエラーは、データベースの文字コードの問題ではないでしょうか。
マスタデータと、データベースの内部エンコードを一度確認してみるといいかもしれません。

また、MySQLエディターと一般的に呼ばれているのかどうかわかりませんが、私はインサート文のマスタデータをコンソールから標準入力して読み込ませています。
autocommit を無効にすれば登録も速いですよ。

(例) ユーザー名とDB名がeccubeの場合
mysql -ueccube -p -hlocalhost eccube < insert.sql

引用:
SET AUTOCOMMIT=0;

INSERT INTO ...
INSERT INTO ...
INSERT INTO ...

COMMIT;


INSERT 文を 1 つにして中身を入れ子にしても速いかもしれません。
phpMyAdminなど、Web経由だと、大量データの場合に遅くなるのはしかたないかもしれません。
Wsm
投稿日時: 2007/10/15 17:41
対応状況: −−−
半人前
登録日: 2007/9/19
居住地:
投稿: 20
Re: MYSQLで登録エラー#1406 - Data too long for column
ご回答ありがとうございました。

>このエラーは、データベースの文字コードの問題ではないでしょうか。
>マスタデータと、データベースの内部エンコードを一度確認してみるといいかもしれません。

コンソールからマスタデータを確認しますと、、

mysql>SELECT * FROM テーブル名;

登録されたレコードが文字化けして見れます。

guestkun様がおっしゃるとおり、データベースの文字コードの問題だと思いますが、

調べたところ、phpMyAdminを使った場合

utf8_general_ciに統一変更してやることで、文字化け問題は解消で

きましたが、コンソールのレコードビューした際も

EC-CUBEシステムより登録された内容もphpMyAdminで参照すると文字化けされてしまいます。

コンソールで日本語がちゃんと見れて登録、更新が出来る方法を

教えていただけますか。

my.iniファイルの設定が

default-character-set = utf8

になっているからでしょうか。

しかし、default-character-set = euc-jp

に変えるとどうもMySQLが使えなくなり、、困っております。
guestkun
投稿日時: 2007/10/15 22:43
対応状況: −−−
半人前
登録日: 2007/9/26
居住地: 関西
投稿: 28
Re: MYSQLで登録エラー#1406 - Data too long for column
MySQLのEUC-JPは下記の通りです。
default-character-set = ujis

また、Windows の場合であれば、
mysqld(サーバーエンコーディング)を ujis、
mysql(クライアントエンコーディング)を sjis に
したら挙動は変わりませんでしょうか?

EC-CUBE のサイトの文字コード(普通にDLするとEUC-JP)は何で、
MySQL の DB の文字コード(mysqld)は何なのか。
OS は Windows なのか UNIX(Linux, FreeBSD)なのか。

もう少し環境を詳しく伝えてもらえれば、
解決に繋がるかもしれません。
Wsm
投稿日時: 2007/10/16 12:11
対応状況: −−−
半人前
登録日: 2007/9/19
居住地:
投稿: 20
Re: MYSQLで登録エラー#1406 - Data too long for column
ご指導ありがとうございます。
開発環境の説明が足りなかったんです。
大変申し訳ございません。
次のような設定にしております。

OS→開発環境 WindowsXP 
サーバ環境 Windows Server 2003
IISで動かしております。

EC-CUBEバージョン 1.3.4
PHP Version 5.1.2
DBバージョン MySQL Version 5.0.18

PHP.ini 設定******************************************

EC|CUBE マニュアルサイトからの指示とおりしております。

日本語(EUC-JP)環境でのphp.ini設定

mbstring.language Japanese

mbstring.http_input EUC-JP

mbstring.http_output EUC-JP

auto_detect_line_endings on

output_handler mb_output_handler

default_charset EUC-JP

mbstring.internal_encoding EUC-JP

mbstring.encoding_translation on

mbstring.detect_order auto

mbstring.substitute_character none

magic_quotes_gpc off


my.ini設定***********************************************

>mysqld(サーバーエンコーディング)を ujis、
>mysql(クライアントエンコーディング)を sjis
教えてくださった方法で変えて見ましたが
下記のような書き方でよろしかったでしょうか。

[mysqld]
default-character-set = ujis
init_connect=SET NAMES ujis
language=Japanese

skip-innodb
skip-bdb

#skip-locking
#skip-networking
#shared-memory

old_passwords=1

connect_timeout = 10
max_connections = 3000
wait_timeout = 60

key_buffer = 256M
max_allowed_packet = 1M
table_cache = 6000
sort_buffer_size = 1M
read_buffer_size = 1M
myisam_sort_buffer_size = 64M
thread_cache = 8
query_cache_size= 16M

thread_concurrency = 4

[client]
default-character-set=sjis
init_connect=SET NAMES sjis
language=Japanese

[mysqldump]
default-character-set=sjis
init_connect=SET NAMES sjis
language=Japanese

しかし、コンソールでの文字化けは解消されておりません。
guestkun
投稿日時: 2007/10/16 12:25
対応状況: −−−
半人前
登録日: 2007/9/26
居住地: 関西
投稿: 28
Re: MYSQLで登録エラー#1406 - Data too long for column
環境の説明ありがとうございます。

まず、今の環境の状態で、会員登録や商品登録をすると
ブラウザ上ではどうなりますでしょうか?
(日本語は文字化けはしますか?)

その後、PHPMyAdmin で euc を選択したら、
上記で登録した日本語は文字化けしますか?

さらに、MySQL の my.ini で [mysql] を
default-character-set=ujis にしたら、
上記で登録した日本語は文字化けしますか?
(ここは、コンソールのターミナルの文字コードも関係します)

まずは、何が OK で、何がダメなのかを洗い出して、
順番に解決できるといいと思います。
Wsm
投稿日時: 2007/10/16 15:13
対応状況: −−−
半人前
登録日: 2007/9/19
居住地:
投稿: 20
Re: MYSQLで登録エラー#1406 - Data too long for column
ご丁寧にありがとうございます。

>まず、今の環境の状態で、会員登録や商品登録をすると
>ブラウザ上ではどうなりますでしょうか?
>(日本語は文字化けはしますか?)

○ 文字化けなくちゃんと表示されています。

>その後、PHPMyAdmin で euc を選択したら、
>上記で登録した日本語は文字化けしますか?

× 文字化けしています。

>さらに、MySQL の my.ini で [mysql] を
>default-character-set=ujis にしたら、
>上記で登録した日本語は文字化けしますか?
>(ここは、コンソールのターミナルの文字コードも関係します)

EX) 漢字、カタカナは「?????????」と表示されております。
× 文字化けしています。

ちなみにコンソールとPHPMyAdminから日本語をインサートすると

#1406 - Data too long for column 'm_name' at row 1

上記のエラー出て登録できません。

guestkun
投稿日時: 2007/10/16 16:51
対応状況: −−−
半人前
登録日: 2007/9/26
居住地: 関西
投稿: 28
Re: MYSQLで登録エラー#1406 - Data too long for column
phpMyAdmin は使ってないので最新版(2.11.1.1)を入れてみました。
また、EC-CUBE も入れ直してみました。

phpMyAdmin で EC-CUBE の DB の構造を見てみますと、
各テーブルとも照合順序が ujis_japanese_ci になっています。
日本語も問題なく表示されます。
また、エクスポート・インポートも問題ありません。

また、コンソール上(DOSプロンプトなど)から
確認してみたところ、こちらも日本語は表示されます。

私の my.ini は以下の通りです。

[client]
default-character-set=sjis
no-beep

[mysqld]
lower_case_table_names=2
basedir=C:/mysql
datadir=C:/mysql/data
default-character-set=ujis
log-bin

[mysqldump]
no-autocommit
add-drop-table
default-character-set=sjis
ゲスト
投稿日時: 2007/10/16 20:48
対応状況: −−−
Re: MYSQLで登録エラー#1406 - Data too long for column
私のために環境も直して頂いて本当に感謝します。

教えて頂いたことを試してみました。

my.iniファイルも修正致しました。

一部のファイルをおっしゃったとおり修正致しましたら

phpMyAdminから登録したレコードはphpMyAdminでちゃんと見れました。
phpMyAdminから登録したレコードはコンソールでちゃんと見れました。

×phpMyAdminから登録したレコードがEC-CUBEブラウザから見ると
文字化け!

×EC-CUBEからマスタが登録できません。

guestkun
投稿日時: 2007/10/16 21:52
対応状況: −−−
半人前
登録日: 2007/9/26
居住地: 関西
投稿: 28
Re: MYSQLで登録エラー#1406 - Data too long for column
自宅で同じ環境を作り直してみました。

私の環境では、EC-CUBE からも phpMyAdmin からも
日本語の入力は問題ありません。
また、サイトでも問題なく表示できています。
(php.ini はゲスト様と同じ、my.ini は先ほど投稿したものです)

もう一度、EC-CUBE をインストールしてみてはいかがでしょうか?
環境を固定してから、EC-CUBE をインストールした方がいいと思います。

ちなみに、編集確認したテーブルは、dtb_kiyaku です。
EC-CUBE(管理画面)、phpMyAdmin、コンソールの 3 箇所から
更新を行っても文字化けなどは起こりません。

update dtb_kiyaku set kiyaku_text = '規約テスト' where kiyaku_id = '1'
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は90,413名です
総投稿数は110,390件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1693
8
red
1571
9
mcontact
1369
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.