NodenY45
NoDeny
Старожил
Карма: 2
Offline
Сообщений: 365
|
|
« Ответ #210 : 19 Ноября 2018, 03:30:23 » |
|
Прошелся позапросно по файлу миграции и именно этот запрос затирает пароли... ALTER TABLE `users` MODIFY COLUMN passwd VARCHAR(64) NOT NULL;
при SELECT AES_DECRYPT(passwd,'hardpass3') FROM users; выдает NULL в то же время у админов все ок SELECT AES_DECRYPT(passwd,'hardpass3') FROM admin; что это может быть то? в итоге изменил запрос для пользователей на ALTER TABLE `users` MODIFY COLUMN passwd varbinary(64) NOT NULL; ничего страшного вроде совместимы типы.
|
|
« Последнее редактирование: 19 Ноября 2018, 04:01:15 от NodenY45 »
|
Записан
|
|
|
|
NodenY45
NoDeny
Старожил
Карма: 2
Offline
Сообщений: 365
|
|
« Ответ #211 : 20 Ноября 2018, 11:19:38 » |
|
Добавлю еще текста в мой монолог Столкнулся с проблемой авторизации по DHCP после миграции. Делал так use nodeny; source bill.sql; (бекап со старого биллинга) source from_50.32_to_n_plus.txt; cd /usr/local/nodeny perl install.pl -x perl install.pl -w=www perl install.pl -m perl install.pl -u Так оказывается что в скрипте миграции старые функции и процедуры. Пришлось накатывать вручную. Но появился глупый вопрос, если сделать после обновление на нашу базу с данными такое: use nodeny; source bill.sql; (от Н+ , который идет в комплекте) Оно обновит структуру и процедуры? или удалит данные?
|
|
« Последнее редактирование: 20 Ноября 2018, 11:45:57 от NodenY45 »
|
Записан
|
|
|
|
NodenY45
NoDeny
Старожил
Карма: 2
Offline
Сообщений: 365
|
|
« Ответ #212 : 20 Ноября 2018, 17:49:57 » |
|
Если авторизация в NoDeny не обновляется некоторое время (параметр timeout секунд в файле /usr/local/nodeny/kernel/auth.cfg), то она (авторизация) пропадает. По умолчанию timeout = 150 - это 2 с половиной минуты. Если за этот период не будет трафика - авторизация удаляется, появится трафик - появится авторизация. Если человек открыл сайт и читает его 3 минуты - авторизация пропадет, откроет новую страницу - появится.
Фишка в том, что режим "всегда онлайн" - это костыль для тех, кто ну никак не может либо настроить нормальную авторизацию, либо подстроить свою схему работы либо по иным необъективным причинам. В нормальной сети лучше отказаться от "всегда онлайн". Как при "всегда онлайн" понять что комп авторизован? Вообще, что понимать под авторизацией если как таковой авторизации нет? Либо пинать (пинговать) комп либо смотреть на его проявления (есть ли трафик).
Модуль authtraf пытается изобразить авторизацию. Комп включен - он авторизован или нет? Комп включен, но у него неверные настройки (весь трафик блочится фаерволом и он фактически не получает инет) - он авторизован или нет? И т.д. аналогичные вопросы.
Я надеюсь вы поняли, что проблема не в недоработке модуля, а в том, что есть какие-то объективные причины в нашем мире, по которым некоторые вещи невозможны.
Если ты все же хочешь остаться на этом костыле и не хочешь видеть рваные авторизации - увеличь параметр timeout, но этим ты получишь лаг в том, что комп будет уже выключен, а ключик будет светиться, что он авторизован.
это относится только к модулю authtraf? или и к dhcp тоже?
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #213 : 21 Ноября 2018, 07:52:28 » |
|
Модуль ядра dhcp тоже пытается изобразить авторизацию ибо после получения ip и до момента запроса на продолжение его использования dhcp серверр никак не знает вырубили комп или нет, ну и следовательно биллинг об этом не знает. В dhcp протоколе не предусмотрено такое
|
|
|
Записан
|
|
|
|
Jovani
NoDeny
Постоялец
Карма: -9
Offline
Сообщений: 234
|
|
« Ответ #214 : 10 Октября 2019, 13:59:01 » |
|
Прошу допомоги. При переході з 50.32 на Н+ виникає помилка як додавати нового клієнта. 0.400556 304 Db.pm::sql
Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
{ 'param' => [ 8688 ], 'sql' => 'INSERT INTO users_trf SET uid=?' }; INSERT INTO users_trf SET uid='8688'
+ 0.400759 181 Db.pm::rollback rollback
|
|
|
Записан
|
|
|
|
Jovani
NoDeny
Постоялец
Карма: -9
Offline
Сообщений: 234
|
|
« Ответ #215 : 10 Октября 2019, 15:02:01 » |
|
Конвертнув по новому, вилізла інша помилка Field 'ip' doesn't have a default value
{ 'sql' => 'INSERT INTO users SET modify_time=UNIX_TIMESTAMP(), comment=?, lstate=?, contract_date=?, limit_balance=?, block_if_limit=?, grp=?, state=?, cstate=?, contract=?, cstate_time=?, fio=?, passwd=AES_ENCRYPT(?,?), id=?', 'param' => [ '', 0, 0, '0', 1, 20, 'on', 1, '', 0, '', '87464438h1', '3654xx', 8683 ] }; INSERT INTO users SET modify_time=UNIX_TIMESTAMP(), comment='', lstate='0', contract_date='0', limit_balance='0', block_if_limit='1', grp='20', state='on', cstate='1', contract='', cstate_time='0', fio='', passwd=AES_ENCRYPT('87464438h1','3654xx'), id='8683'
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #216 : 10 Октября 2019, 17:43:21 » |
|
В N+ поле ip не должно существовать в таблице users. Скорее всего проблема возникла в более ранних sql, смотри внимательно
|
|
|
Записан
|
|
|
|
Jovani
NoDeny
Постоялец
Карма: -9
Offline
Сообщений: 234
|
|
« Ответ #217 : 11 Октября 2019, 07:26:13 » |
|
Так мне все поля удалить с такой ошибкой и те которых нет в оригинальной базе Н+? Field 'name' doesn't have a default value но такое поле присутствует в базе Н+...
|
|
|
Записан
|
|
|
|
Redmen
NoDeny
Ветеран
Карма: 62
Offline
Сообщений: 546
Подяку в КАРМУ
|
|
« Ответ #218 : 11 Октября 2019, 09:09:13 » |
|
|
|
|
Записан
|
|
|
|
Jovani
NoDeny
Постоялец
Карма: -9
Offline
Сообщений: 234
|
|
« Ответ #219 : 11 Октября 2019, 15:50:20 » |
|
Спасибо, помогло. Но теперь осталась такая ошибка. Посмотрел таблицу users_trf, там нет uid 8696... Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.
{ 'sql' => 'INSERT INTO users_trf SET uid=?', 'param' => [ 8696 ] }; INSERT INTO users_trf SET uid='8696'
|
|
« Последнее редактирование: 11 Октября 2019, 16:15:20 от Jovani »
|
Записан
|
|
|
|
Jovani
NoDeny
Постоялец
Карма: -9
Offline
Сообщений: 234
|
|
« Ответ #220 : 11 Октября 2019, 17:07:10 » |
|
Мне кажется нет данных у кого какая услуга. Хотя если открыть клиента, услуга у клиентов установлена. Как можно одни запросом пересохранить всех клиентов? Будет не реально заходить и каждого клиента пересохранять. describe users_trf ; +----------+------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+------------------+------+-----+---------+-------+ | uid | int(11) unsigned | NO | PRI | NULL | | | submoney | float | NO | | 0 | | | in1 | bigint(20) | NO | | 0 | | | out1 | bigint(20) | NO | | 0 | | | in2 | bigint(20) | NO | | 0 | | | out2 | bigint(20) | NO | | 0 | | | in3 | bigint(20) | NO | | 0 | | | out3 | bigint(20) | NO | | 0 | | | in4 | bigint(20) | NO | | 0 | | | out4 | bigint(20) | NO | | 0 | | | in5 | bigint(20) | NO | | 0 | | | out5 | bigint(20) | NO | | 0 | | | in6 | bigint(20) | NO | | 0 | | | out6 | bigint(20) | NO | | 0 | | | in7 | bigint(20) | NO | | 0 | | | out7 | bigint(20) | NO | | 0 | | | in8 | bigint(20) | NO | | 0 | | | out8 | bigint(20) | NO | | 0 | | | traf1 | bigint(20) | NO | | 0 | | | traf2 | bigint(20) | NO | | 0 | | | traf3 | bigint(20) | NO | | 0 | | | traf4 | bigint(20) | NO | | 0 | | | test | tinyint(4) | NO | | 0 | | | actual | tinyint(4) | NO | MUL | 0 | | +----------+------------------+------+-----+---------+-------+ 24 rows in set (0.00 sec)
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #221 : 12 Октября 2019, 10:07:40 » |
|
Я думаю проблема в этом: non-transactional tables скорее всего таблица в myisam и надо сконвертировать в innodb
|
|
|
Записан
|
|
|
|
Jovani
NoDeny
Постоялец
Карма: -9
Offline
Сообщений: 234
|
|
« Ответ #222 : 12 Октября 2019, 10:14:30 » |
|
Стас большое спасибо за подсказку, конвертнул таблицы users и trf, пока ошибок в дебаг нет. Все таблицы конвертировал в InnoDB.
|
|
|
Записан
|
|
|
|
Jovani
NoDeny
Постоялец
Карма: -9
Offline
Сообщений: 234
|
|
« Ответ #223 : 16 Октября 2019, 14:05:25 » |
|
1. После перехода у всех стоит снятие за услугу 0. Как теперь сделать, чтоб у всех сняло за услугу?
Платеж, связанный с услугой, не существует!
2. И появился бонус у всех у кого было несколько IP. Откуда он взялся? Как решить такие проблемы ?
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #224 : 21 Октября 2019, 17:35:07 » |
|
Как ты подключил услуги? ?
|
|
|
Записан
|
|
|
|
|