Биллинговая система Nodeny
22 Ноября 2024, 23:14:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: 1 [2]
  Печать  
Автор Тема: Переход с 50.32 на +  (Прочитано 11150 раз)
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #15 : 08 Декабря 2020, 00:33:35 »

Да, видно, что бока скорее всего в кириллических паролях. Биллингу пофик на самом деле. Просто mysql разных версий и/или кодировок не хочет корректно их преобразовывать. Если паролей не много, я бы вручную проблемные перенес. Если много, то можно на старом сервере преобразовать пароли и уже тогда экспортировать всю базу в файл.
Записан
Jovani
NoDeny
Постоялец
*

Карма: -9
Offline Offline

Сообщений: 234


Просмотр профиля
« Ответ #16 : 11 Декабря 2020, 08:58:24 »

А как найти все проблемные? Или исключить их с запроса.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #17 : 12 Декабря 2020, 15:36:17 »

Попробуй так:
Код:
SELECT id, name FROM users WHERE AES_DECRYPT(passwd, 'hardpass') IS NULL;
Записан
Jovani
NoDeny
Постоялец
*

Карма: -9
Offline Offline

Сообщений: 234


Просмотр профиля
« Ответ #18 : 22 Декабря 2020, 11:29:37 »

Спасибо, исправил всех.
Но есть такие что в билинге нет, а вот в базе они присутствуют.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #19 : 22 Декабря 2020, 20:28:52 »

это нормально, это служебные записи
Записан
goletsa
NoDeny
Спец
*

Карма: 21
Offline Offline

Сообщений: 973


Просмотр профиля
« Ответ #20 : 12 Января 2021, 20:53:18 »

Подскажите, при миграции хочу добавить одну из функций от ND+, но не удается.

Код:
DROP FUNCTION IF EXISTS strSplit;
CREATE FUNCTION strSplit(x MEDIUMTEXT, delim MEDIUMTEXT, pos int) RETURNS MEDIUMTEXT
RETURN
    TRIM(BOTH '\r' FROM TRIM(
    REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos), LENGTH(SUBSTRING_INDEX(x, delim, pos - 1)) + 1), delim, '')
));

Код:
ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

Отключить логирование не хочется, хочу сделать master-slave рекпликацию в перспективе, а это вроде как требует активные логи.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #21 : 13 Января 2021, 01:23:00 »

Попробуй сначала выполнить:
Код:
DELIMITER $$
а после выполнения твоего sql выполнить:
Код:
$$
DELIMITER ;
Записан
goletsa
NoDeny
Спец
*

Карма: 21
Offline Offline

Сообщений: 973


Просмотр профиля
« Ответ #22 : 19 Января 2021, 12:42:35 »

Попробуй сначала выполнить:
Код:
DELIMITER $$
а после выполнения твоего sql выполнить:
Код:
$$
DELIMITER ;

Такая же ошибка.
Код:
root@localhost [db]> DROP FUNCTION IF EXISTS strSplit;
Query OK, 0 rows affected (0.02 sec)

root@localhost [db]> DELIMITER $$
root@localhost [db]> CREATE FUNCTION strSplit(x MEDIUMTEXT, delim MEDIUMTEXT, pos int) RETURNS MEDIUMTEXT
    -> RETURN
    ->     TRIM(BOTH '\r' FROM TRIM(
    ->     REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos), LENGTH(SUBSTRING_INDEX(x, delim, pos - 1)) + 1), delim, '')
    -> ));
    ->
    -> $$
ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
root@localhost [db]> DELIMITER ;

Относительно работает если явно указать что это DETERMINISTIC например, но я не знаю насколько правильно так делать для этой функции.
Код:
DROP FUNCTION IF EXISTS strSplit;
CREATE FUNCTION strSplit(x MEDIUMTEXT, delim MEDIUMTEXT, pos int) RETURNS MEDIUMTEXT
DETERMINISTIC
RETURN
    TRIM(BOTH '\r' FROM TRIM(
    REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos), LENGTH(SUBSTRING_INDEX(x, delim, pos - 1)) + 1), delim, '')
));

Ну и функция не то чтобы прямо моя, взята отсюда http://nodeny.com.ua/wiki/index.php/Radius_%D0%B0%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D1%8B

Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #23 : 20 Января 2021, 00:56:08 »

Цитировать
Подпрограмма считается “deterministic”, если она всегда дает один и тот же результат для одних и тех же входных параметров, и “not deterministic” в противном случае
Т.е ты правильно указал DETERMINISTIC
Записан
Страниц: 1 [2]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!