Данные усечены в базе данных MySQL. Мне нужно больше информации о том, что вызывает это?

Я всегда получал это предупреждающее сообщение каждый раз, когда вставлял строку данных для имени пользователя и пароля. Я использовал функцию MD5 для пароля и Current User для имени пользователя.

Что я сделал, так это оставил функцию пустой для имени пользователя и пароля, и теперь она успешно вставлена ​​​​без предупреждения, но, конечно, я не могу оставить пароль незашифрованным.

Я пытался найти в Интернете подобные проблемы, но они сложны для понимания. Что мне нужно знать, так это то, что вызывает эту проблему каждый раз, когда я устанавливаю функцию для строки, в которой возникает предупреждение?

Это предупреждение говорит.

Вставлена ​​1 строка.

Предупреждение: #1265 Данные усечены для столбца «имя пользователя» в строке 1.

Предупреждение: #1265 Данные усечены для столбца «пароль» в строке 1.


person JustNoobWillingToLearn    schedule 14.03.2013    source источник


Ответы (3)


Это просто означает, что длина вставляемого значения больше длины, определенной для столбца.

Измените столбцы username и password на длину 32, поскольку MD5 возвращает строку из 32 шестнадцатеричных цифр.

person John Woo    schedule 14.03.2013
comment
Я так не думаю, я установил длину значения для столбца 20 и вставил всего 5 или 10 символов в строку. - person JustNoobWillingToLearn; 14.03.2013
comment
Вы можете выполнить это: SHOW VARIABLES LIKE 'sql_mode' и опубликовать результат здесь? - person John Woo; 14.03.2013
comment
Странно, но вы правы, я установил его на 35 и теперь вставил без предупреждения. Все равно спасибо. - person JustNoobWillingToLearn; 14.03.2013

Обычно пароль при шифровании имеет большую последовательность символов. Поэтому для безопасной вставки сделайте свой пароль длиной не менее 50 символов. Мы внедрили это в продакшн-приложение, и это не доставляло нам никаких проблем как минимум 2 года. Мы видели, что зашифрованный пароль md5 достигает 28 символов и выше.

Надеюсь, это поможет вам

person Piyas De    schedule 14.03.2013

Пожалуйста, проверьте поле пароля в вашей модели, если max_lengh больше 128

пароль = models.CharField (max_length = 128, пусто = True, null = True, verbose_name = 'пароль', help_text = пароль)

person Kevin    schedule 08.07.2020