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

[6.1] Ошибки Inet-Access
http://forum.bitel.ru/viewtopic.php?f=44&t=10996
Страница 1 из 1

Автор:  Phricker [ 16 окт 2015, 15:38 ]
Заголовок сообщения:  [6.1] Ошибки Inet-Access

Можно как то от этих ошибок избавиться?
Скорее всего в User-Name приходит, что-то что ему не нравится.
Код:
access 10-16/07:08:41 ERROR [auth-error-worker] BatchWorker - java.sql.SQLException: Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
ru.bitel.bgbilling.common.BGException: java.sql.SQLException: Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
        at ru.bitel.bgbilling.modules.inet.api.server.bean.InetAuthErrorDao.addError(InetAuthErrorDao.java:272)
        at ru.bitel.bgbilling.modules.inet.access.InetAuthErrorWorker.doTask(InetAuthErrorWorker.java:137)
        at ru.bitel.bgbilling.modules.inet.access.InetAuthErrorWorker.doTask(InetAuthErrorWorker.java:1)
        at ru.bitel.common.worker.BatchWorker.internalDoTask(BatchWorker.java:166)
        at ru.bitel.common.worker.BatchWorker.doTasks(BatchWorker.java:145)
        at ru.bitel.bgbilling.modules.inet.access.InetAuthErrorWorker.runWorker(InetAuthErrorWorker.java:113)
        at ru.bitel.common.worker.BatchWorker.internalRunWorker(BatchWorker.java:101)
        at ru.bitel.common.worker.BatchWorker.runImpl(BatchWorker.java:51)
        at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:54)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.sql.SQLException: Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1084)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4232)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4164)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2838)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2082)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2334)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2262)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2246)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
        at ru.bitel.bgbilling.server.util.PreparedStatementWrapper.executeUpdate(PreparedStatementWrapper.java:109)
        at ru.bitel.bgbilling.modules.inet.api.server.bean.InetAuthErrorDao.addError(InetAuthErrorDao.java:192)
        ... 9 more

Автор:  stark [ 16 окт 2015, 15:41 ]
Заголовок сообщения:  Re: [6.1] Ошибки Inet-Access

что в data.properties в db.url

Автор:  Amir [ 16 окт 2015, 15:43 ]
Заголовок сообщения:  Re: [6.1] Ошибки Inet-Access

Покажите SHOW CREATE TABLE inet_auth_error_<mid>_201510

Автор:  dimOn [ 16 окт 2015, 15:44 ]
Заголовок сообщения:  Re: [6.1] Ошибки Inet-Access

и вот это заодно:
Код:
SHOW VARIABLES LIKE 'character_set%';

Код:
SHOW VARIABLES LIKE 'colla%';

Автор:  Phricker [ 16 окт 2015, 15:52 ]
Заголовок сообщения:  Re: [6.1] Ошибки Inet-Access

stark, это ж InetAccess там нет data.properties :roll: :oops:
Код:
<!-- Параметры подключения к БД -->
        <param name="db.driver" value="com.mysql.jdbc.Driver"/>
        <param name="db.url" value="jdbc:mysql://10.0.6.5/bgbilling?useUnicode=true&amp;characterEncoding=UTF-8&amp;allowUrlInLocalInfile=true&amp;zeroDateTimeBehavior=convertToNull&amp;jdbcCompliantTruncation=false&amp;queryTimeoutKillsConnection=true&amp;connectTimeout=1000"/>



Код:
inet_auth_error_12_201510 | CREATE TABLE `inet_auth_error_12_201510` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `deviceId` int(11) NOT NULL,
  `deviceTitle` char(15) NOT NULL,
  `contractId` int(11) NOT NULL,
  `contractTitle` char(15) NOT NULL,
  `servId` int(11) NOT NULL,
  `hash` int(11) NOT NULL DEFAULT '0',
  `servTitle` char(100) NOT NULL,
  `code` int(11) NOT NULL,
  `count` int(11) NOT NULL DEFAULT '1',
  `lastTime` datetime NOT NULL,
  `logCoordinateRecordId` int(11) NOT NULL,
  KEY `id` (`id`),
  KEY `deviceId` (`deviceId`),
  KEY `lastTime` (`lastTime`),
  KEY `time_dcsc` (`lastTime`,`deviceId`,`contractId`,`servId`,`code`,`hash`)
) ENGINE=InnoDB AUTO_INCREMENT=686166 DEFAULT CHARSET=cp1251
/*!50100 PARTITION BY RANGE (TO_DAYS(lastTime))
(PARTITION p20151001 VALUES LESS THAN (736242) ENGINE = InnoDB,
 PARTITION p20151006 VALUES LESS THAN (736247) ENGINE = InnoDB,
 PARTITION p20151011 VALUES LESS THAN (736252) ENGINE = InnoDB,
 PARTITION p20151016 VALUES LESS THAN (736257) ENGINE = InnoDB,
 PARTITION p20151021 VALUES LESS THAN (736262) ENGINE = InnoDB,
 PARTITION p20151026 VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */ |


Код:
mysql> SHOW VARIABLES LIKE 'character_set%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | cp1251                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | cp1251                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)


Код:
mysql> SHOW VARIABLES LIKE 'colla%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | cp1251_general_ci |
| collation_server     | cp1251_general_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)


collation_database и collation_server тянутся еще с 5.1(2), скорее всего.
Я так понимаю, что рекомендацией будет перевести в my.cnf все в UTF-8, поменять db.url в настройках всех приложений (в BGBillingServer/data/data.properties у меня стоит cp1251 в db.url ).

Автор:  dimOn [ 16 окт 2015, 15:59 ]
Заголовок сообщения:  Re: [6.1] Ошибки Inet-Access

ну проблема в том что collation_connection берётся utf8_general_ci, а не должно быть так, т.к. всё в остальном месте вроде как 1251

Автор:  dimOn [ 16 окт 2015, 16:00 ]
Заголовок сообщения:  Re: [6.1] Ошибки Inet-Access

characterEncoding=UTF-8 надо поменять на старый значений

в инструкции по переходу где-то есть про такое. в доку сейчас отдельно отмечу

Автор:  Phricker [ 16 окт 2015, 16:23 ]
Заголовок сообщения:  Re: [6.1] Ошибки Inet-Access

А можно потом ссылкой кинуть :)

Автор:  ok-2004 [ 16 окт 2015, 19:02 ]
Заголовок сообщения:  Re: [6.1] Ошибки Inet-Access

кинусь и я до кучи:
http://gahcep.github.io/blog/2013/01/05/mysql-utf8/

Автор:  Phricker [ 16 окт 2015, 22:40 ]
Заголовок сообщения:  Re: [6.1] Ошибки Inet-Access

ok-2004, благодарю, гляну более подробно обязательно. Просто как я уже сказал, все это тянется еще с очень старых версий где был cp1252 :) Да и сейчас все работает, а как говорится работает не трожь )))

dimon, я правильно понимаю, что на текущий момент мне будет достаточно в inet-access.xml поменять строку в db.url?

Автор:  dimOn [ 17 окт 2015, 13:00 ]
Заголовок сообщения:  Re: [6.1] Ошибки Inet-Access

тут
http://docs.bitel.ru/pages/viewpage.act ... Id=1605652

Автор:  dimOn [ 17 окт 2015, 13:00 ]
Заголовок сообщения:  Re: [6.1] Ошибки Inet-Access

не знаю насчёт отношения "достаточно", но "необходимо" по крайней мере

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