forum.bitel.ru
http://forum.bitel.ru/

[6.1+] Не работает поиск по названию тарифа
http://forum.bitel.ru/viewtopic.php?f=22&t=11385
Страница 1 из 1

Автор:  Phricker [ 27 фев 2016, 03:59 ]
Заголовок сообщения:  [6.1+] Не работает поиск по названию тарифа

Собственно сабж.
Не ищет в том случае если вбиваешь в поиск русские символы.
Пробовал на 6.1 и тест 6.2
Код:
[root@test62 ~]# cat /etc/my.cnf | grep utf8
character-set-server=utf8
collation-server=utf8_unicode_ci


Код:
[root@test62 data]# cat ./data.properties | grep db.url
db.url=jdbc:mysql://127.0.0.1/bgbilling?useUnicode=true&characterEncoding=UTF-8&allowUrlInLocalInfile=true&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false&elideSetAutoCommits=true&cachePrepStmts=true&useCursorFetch=true&queryTimeoutKillsConnection=true&connectTimeout=1000


В дебаг логе выглядит как то так
Код:
http://10.0.6.152:8080/bgbilling/executer?BGBillingSecret=bldKF1hltExrdvEWLLuSdQ4o&labelIds=&showUsed=2&contractCount=true&pageIndex=1&module=tariff&action=ListTariffPlans&pageSize=999&titleMask=%D0%BF%D0%BE%D0%B4%D0%BD%D0%B5%D0%B2%D0%BD%D0%BE%D0%B9&moduleId=&

Автор:  Phricker [ 27 фев 2016, 03:59 ]
Заголовок сообщения:  Re: [6.1+] Не работает поиск по названию тарифа

До перевода 6.1 на UTF8 - поиск работал.

Автор:  skn [ 27 фев 2016, 05:11 ]
Заголовок сообщения:  Re: [6.1+] Не работает поиск по названию тарифа

а что выдает

Код:
show create table tariff_plan

Автор:  zavndw [ 27 фев 2016, 05:24 ]
Заголовок сообщения:  Re: [6.1+] Не работает поиск по названию тарифа

Код:
mysql> show create table tariff_plan;
+-------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table       | Create Table                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
+-------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tariff_plan | CREATE TABLE tariff_plan (
  id int(11) NOT NULL AUTO_INCREMENT,
  title varchar(200) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  title_web varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  lm datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  actual int(11) NOT NULL DEFAULT '0',
  gr bigint(20) NOT NULL,
  pattern varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  face tinyint(4) DEFAULT NULL,
  tree_id int(11) NOT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1051 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |
+-------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>

Вот, он в группе уже Димона дапрашивал:)

Автор:  Phricker [ 27 фев 2016, 12:48 ]
Заголовок сообщения:  Re: [6.1+] Не работает поиск по названию тарифа

Добавлю, что и на тесте и на 6.1 одинаковый вывод.

Автор:  dimOn [ 27 фев 2016, 13:28 ]
Заголовок сообщения:  Re: [6.1+] Не работает поиск по названию тарифа

из sql-редактора клиента(!):
show create database ...
show variables like "%char%"
show variables like "%colla%"

что-то я в data.properties про collation не вижу, а вот здесь написано что надо http://docs.bitel.ru/pages/viewpage.act ... Id=1605652

Автор:  skn [ 27 фев 2016, 13:47 ]
Заголовок сообщения:  Re: [6.1+] Не работает поиск по названию тарифа

выкладывается обновление для 6.2, попробуйте

Автор:  skn [ 27 фев 2016, 13:50 ]
Заголовок сообщения:  Re: [6.1+] Не работает поиск по названию тарифа

там проблема с REGEXP...

дока по mysql говорит что REGEXP с многобайтовыми кодировками может работать не корректно

Цитата:
Warning

The REGEXP and RLIKE operators work in byte-wise fashion, so they are not multibyte safe and may produce unexpected results with multibyte character sets. In addition, these operators compare characters by their byte values and accented characters may not compare as equal even if a given collation treats them as equal.

Автор:  Phricker [ 27 фев 2016, 14:00 ]
Заголовок сообщения:  Re: [6.1+] Не работает поиск по названию тарифа

dimOn писал(а):
из sql-редактора клиента(!):
show create database ...
show variables like "%char%"
show variables like "%colla%"


На тесте.
Код:
bgbilling   CREATE DATABASE `bgbilling` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */

Код:
character_set_client   utf8
character_set_connection   utf8
character_set_database   utf8
character_set_filesystem   binary
character_set_results   
character_set_server   utf8
character_set_system   utf8
character_sets_dir   /usr/share/percona-server/charsets/


Код:
collation_connection   utf8_general_ci
collation_database   utf8_unicode_ci
collation_server   utf8_unicode_ci


На рабочем отличается.
Рабочий еще с версии 4.6
Код:
bgbilling   CREATE DATABASE `bgbilling` /*!40100 DEFAULT CHARACTER SET cp1251 */

Код:
character_set_client   utf8
character_set_connection   utf8
character_set_database   cp1251
character_set_filesystem   binary
character_set_results   
character_set_server   utf8
character_set_system   utf8
character_sets_dir   /usr/share/mysql/charsets/

Код:
collation_connection   utf8_unicode_ci
collation_database   cp1251_general_ci
collation_server   utf8_unicode_ci


Мне не нравится про collation_database и character_set_database. Необходимо изменить?

На рабочем в data.properties задано
Код:
/bgbilling?useUnicode=true&characterEncoding=UTF-8&connectionCollation=utf8_unicode_ci&allowUrlInLocalInfile=true&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false&elideSetAutoCommits=true&cachePrepStmts=true&useCursorFetch=true&queryTimeoutKillsConnection=true&connectTimeout=1000

Тестовый 6.2 как скачан с сайта, так и работает :)

Автор:  Phricker [ 27 фев 2016, 14:41 ]
Заголовок сообщения:  Re: [6.1+] Не работает поиск по названию тарифа

skn писал(а):
выкладывается обновление для 6.2, попробуйте

На 6.2 тестовом заработал поиск, при этом не меняя ничего с кодировками (представлены в предыдущем сообщении).

Вопрос с collation_database и character_set_database все же открыт.

Автор:  Phricker [ 27 фев 2016, 15:44 ]
Заголовок сообщения:  Re: [6.1+] Не работает поиск по названию тарифа

Код:
ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Автор:  dimOn [ 27 фев 2016, 21:47 ]
Заголовок сообщения:  Re: [6.1+] Не работает поиск по названию тарифа

я запутался на каком чо прописано в какой версии биллинга и что в какой не работает, но могу сказать что:
connectionCollation=utf8_unicode_ci должно быть обязательно, иначе будут проблемы с коллейшенами в некоторых местах (поэтому там и collation_connection utf8_general_ci некорректный)
и DEFAULT CHARACTER SET на базе тоже должно быть обязательно корректным, иначе будут проблемы например с временными таблицами.

Автор:  Phricker [ 27 фев 2016, 23:29 ]
Заголовок сообщения:  Re: [6.1+] Не работает поиск по названию тарифа

Заработало в 6.2 после
Цитата:
1023 27.02.2016 12:45:58 ИСПРАВЛЕНО Kernel: Поиск тарифных планов по названию (кодировка utf-8)


Кодировку изменил
Код:
ALTER DATABASE bgbilling CHARACTER SET utf8 COLLATE utf8_unicode_ci;


Благодарю за помощь :)

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/