バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > その他 > 最新版3.0.13 のキーワード検索でシステムエラーが発生します。

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
bigslope
投稿日時: 2017/1/7 12:43
対応状況: −−−
常連
登録日: 2016/12/9
居住地:
投稿: 44
最新版3.0.13 のキーワード検索でシステムエラーが発生します。
3.0.12では、キーワード検索は正常に出来たのですが、
最新版の3.0.13をインストールしてキーワード検索をすると、システムエラーが発生します。

ログを見ると、以下のようですが、よくわかりません。
すみません、原因が分かる人がおりましたら、教えていただけないでしょうか?


SQLSTATE[42000]: Syntax error or access violation: 1253 COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'binary' (uncaught exception) at /home/*****/public_html/eccube/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php line 115 {"exception":"[object] (Doctrine\\DBAL\\Exception\\DriverException(code: 0): An exception occurred while executing 'SELECT count(DISTINCT d0_.product_id) AS sclr0 FROM dtb_product d0_ INNER JOIN dtb_product_category d1_ ON d0_.product_id = d1_.product_id INNER JOIN dtb_category d2_ ON d1_.category_id = d2_.category_id AND (d2_.del_flg = 0) INNER JOIN dtb_product_class d3_ ON d0_.product_id = d3_.product_id AND (d3_.del_flg = 0) WHERE (d0_.status = 1 AND d1_.category_id IN (?) AND (d0_.name COLLATE utf8_unicode_ci LIKE ? COLLATE utf8_unicode_ci OR d0_.search_word COLLATE utf8_unicode_ci LIKE ? COLLATE utf8_unicode_ci)) AND (d0_.del_flg = 0) GROUP BY d0_.product_id, d0_.name, d0_.note, d0_.internal_capacity, d0_.material_name, d0_.description_list, d0_.description_detail, d0_.search_word, d0_.free_area, d0_.del_flg, d0_.create_date, d0_.update_date, d0_.creator_id, d0_.status' with params [3, \"%\\u3042%\", \"%\\u3042%\"]:\n\nSQLSTATE[42000]: Syntax error or access violation: 1253 COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'binary' at /home/*****/public_html/eccube/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:115, Doctrine\\DBAL\\Driver\\PDOException(code: 42000): SQLSTATE[42000]: Syntax error or access violation: 1253 COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'binary' at /home/*****/public_html/eccube/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:93, PDOException(code: 42000): SQLSTATE[42000]: Syntax error or access violation: 1253 COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'binary' at /home/*****/public_html/eccube/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:91)"} [GET, /(ここはドメインめいです)/products/list?category_id=3&name=%E3%81%82, (ここはグルーバルIPアドレスです), http://(ここはドメインめいです)/products/list?category_id=3, Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36]
468
投稿日時: 2017/1/7 19:54
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 最新版3.0.13 のキーワード検索でシステムエラーが発生します。
エラーメッセージからの想像ですが、3.0.13で接続されているデータベースの照合順序が「binary」になっていないでしょうか?
3.0.12で接続されているデータベースの照合順序は確認できますか?
3.0.12のデータベースと照合順序が異なっている場合は、それが原因の可能性が高いと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

bigslope
投稿日時: 2017/1/7 23:48
対応状況: −−−
常連
登録日: 2016/12/9
居住地:
投稿: 44
Re: 最新版3.0.13 のキーワード検索でシステムエラーが発生します。
ありがとうござます。

照合順序ですが、データベース、すべてのテーブルとも、utf8_general_ci になっています。


3.0.12と3.0.13のデータベースは同じ照合順序です。

eccube3.0.13 を普通にインストールしただけなのですが・・・
468
投稿日時: 2017/1/8 11:45
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 最新版3.0.13 のキーワード検索でシステムエラーが発生します。
そうなのですね・・・。
私の方でも3.0.13をMySQLに接続する環境を作って確認してみましたが、現象は再現しませんでした。
(「あ」で検索されていますよね?)

ソースを見ると、/src/Eccube/Doctrine/ORM/Query/Normalize.php というファイルが3.0.13では追加されており、
/src/Eccube/Repository/ProductRepository.php 115行目のNORMALIZE(*****)を見るとわかるのですが、
SQLを組み立てる際に、「 COLLATE utf8_unicode_ci」をSQL文中にセットしているようです。
私は、この処理の目的が良く分からないのですが、
とりあえず、Normalize.php内の以下の記述を変更すれば、エラーは出なくなりますか?
$sql = sprintf('%s COLLATE utf8_unicode_ci', $this->string->dispatch($sqlWalker));

$sql = sprintf('%s', $this->string->dispatch($sqlWalker));

エラーが出なくなるのであれば、「 COLLATE utf8_unicode_ci」が原因かと思いますので、
そこからMySQL側の設定など対応方法を検討していけば良いかと思います。
単純にこの記述を消していいものかどうか、私には判断できないので、申し訳ないのですが・・・。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

bigslope
投稿日時: 2017/1/8 16:38
対応状況: −−−
常連
登録日: 2016/12/9
居住地:
投稿: 44
Re: 最新版3.0.13 のキーワード検索でシステムエラーが発生します。
誠にありがとうござます。助かります。

$sql = sprintf('%s', $this->string->dispatch($sqlWalker));
に変更すると、システムエラーが出なくなり、正常に検索出来るようになりました。

kagoyaのサーバを使用しているのですが、
同じサーバを使用して、最新版3.0.13 をインストールすれば、同じ現象になるのでしょうか?
468
投稿日時: 2017/1/9 0:39
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 最新版3.0.13 のキーワード検索でシステムエラーが発生します。
何故、「 COLLATE utf8_unicode_ci」があるとエラーになるのか分からないので、何とも言えませんが、
MySQLバージョンや環境設定などが関係していると思いますので、
同じサーバで同じサービスを利用されているのであれば、
再現する可能性が高いと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

bigslope
投稿日時: 2017/1/9 14:59
対応状況: 解決済
常連
登録日: 2016/12/9
居住地:
投稿: 44
Re: 最新版3.0.13 のキーワード検索でシステムエラーが発生します。
ご丁寧なアドバイスありがとうございました。
助かりました。
MPV
投稿日時: 2017/1/25 4:36
対応状況: −−−
仙人
登録日: 2011/3/27
居住地:
投稿: 309
Re: 最新版3.0.13 のキーワード検索でシステムエラーが発生します。
突然のコメントで失礼いたします。

当方もkagoyaの環境で同様のエラーが出て
困っておりましたところ、こちらのスレッドを見つけまして
468様の内容にある通りに修正したところ正常に検索処理が
動くようになりました。

システム情報を以下に記載しますので、
もし不具合でしたら、ご対応頂ければ幸いです。

システム情報

EC-CUBE 3.0.13
サーバーOS Linux 2.6.32-642.13.1.el6.x86_64 #1 SMP Wed Jan 11 20:56:24 UTC 2017 x86_64
DBサーバー MySQL 5.6.22
WEBサーバー Apache
PHP 5.6.25 (Core, date, ereg, libxml, openssl, pcre, sqlite3, zlib, bcmath, bz2, calendar, ctype, curl, dba, dom, hash, fileinfo, filter, ftp, gd, gettext, gmp, SPL, iconv, session, json, mbstring, mcrypt, mysql, mysqli, standard, PDO, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, Reflection, imap, SimpleXML, snmp, soap, sockets, exif, tokenizer, xml, xmlreader, xmlwriter, xsl, zip, apache2handler, imagick, Zend OPcache)
HTTPユーザーエージェント Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0

bigslope様と同様、照合順序はutf8_general_ciです。

お願いだけで大変恐縮なのですが・・・。
どうぞよろしくお願いいたします。<(_ _)>
trebla-on
投稿日時: 2017/1/27 15:02
対応状況: −−−
新米
登録日: 2017/1/27
居住地:
投稿: 1
Re: 最新版3.0.13 のキーワード検索でシステムエラーが発生します。
もしかしてカラムタイプはblobかもしれませんか?
それを確認のために以下のSQLクエリー結果を教えていただけますか?
SHOW CREATE TABLE dtb_product;
MPV
投稿日時: 2017/8/31 16:34
対応状況: −−−
仙人
登録日: 2011/3/27
居住地:
投稿: 309
Re: 最新版3.0.13 のキーワード検索でシステムエラーが発生します。
trebla-on様

今更かと思いますが、確認しました。
blobではなくtextでした。


CREATE TABLE `dtb_product` (
 `product_id` int(11) NOT NULL AUTO_INCREMENT,
 `creator_id` int(11) NOT NULL,
 `status` smallint(6) DEFAULT NULL,
 `name` text NOT NULL,
 `note` text,
 `description_list` text,
 `description_detail` text,
 `search_word` text,
 `free_area` text,
 `del_flg` smallint(6) NOT NULL DEFAULT '0',
 `create_date` datetime NOT NULL,
 `update_date` datetime NOT NULL,
 PRIMARY KEY (`product_id`),
 KEY `IDX_XXXXXXXXXXXXXX` (`creator_id`),
 KEY `IDX_XXXXXXXXXXXXXX` (`status`),
 CONSTRAINT `FK_XXXXXXXXXXXX` FOREIGN KEY (`creator_id`) REFERENCES `dtb_member` (`member_id`),
 CONSTRAINT `FK_XXXXXXXXXXXX` FOREIGN KEY (`status`) REFERENCES `mtb_disp` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=xxxxx DEFAULT CHARSET=utf8

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,095名です
総投稿数は109,618件です

投稿数ランキング

1
seasoft
7364
2
468
3217
3
AMUAMU
2712
4
nanasess
2302
5
umebius
2085
6
yuh
1814
7
h_tanaka
1609
8
red
1567
9
mcontact
1229
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.