質問 > その他 > 最新版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のデータベースと照合順序が異なっている場合は、それが原因の可能性が高いと思います。
|
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側の設定など対応方法を検討していけば良いかと思います。 単純にこの記述を消していいものかどうか、私には判断できないので、申し訳ないのですが・・・。
|
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バージョンや環境設定などが関係していると思いますので、 同じサーバで同じサービスを利用されているのであれば、 再現する可能性が高いと思います。
|
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でした。
|
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |