Программы
Решаем проблему ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number и Error Code: 1064 в MySQL / MariaDB

Решаем проблему ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number и Error Code: 1064 в MySQL / MariaDB

MySQL и её новая сестричка из мира СПО – MariaDB довольно сильно распространены на хостингах, да и LAMP никто не отменял – пользуются ещё. Так вот не так давно стала возникать эта ошибка. Как её чинить? В этой заметке.

MySQL – это в прошлом открытая система управления базами данных. После покупки Sun компанией Oracle, MySQL стала принадлежать последней. Но свободный код позволил сделать ответвление – MariaDB (нельзя было использовать именно название "MySQL"). Потому эти базы данных и похожи.

И так и там при создании пользователя нужно указать, как будет авторизоваться пользователь. И там и там часто пишут нечто-то следующее (с версии 5.7):

mysql> GRANT USAGE ON *.* TO 'user'@'localhost' IDENTIFIED BY PASSWORD 's3cr3t';

На что получают:

ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number

А с некоторых пор (MySQL Server 8.0) и вообще:

Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

И это правильно, ведь функция PASSWORD предоставляет очень слабое хеширование:

mysql> SELECT PASSWORD('xyz123');
54fg56gs32sgi3862

Такой короткий хеш может быть причиной взлома перебором.

Вместо этого вы можете писать:

mysql> GRANT USAGE ON *.* TO 'user'@'localhost' IDENTIFIED BY 's3cr3t';
Query OK, 0 rows affected (0.00 sec)

В этом случае MySQL и MariaDB будут использовать более стойкий хеш, и ошибки не будет.

Также может быть вам интересно:

О пользе мифических супер-программистов

10х-программисты, супер-звёзды от разработки и прочие мифические личности. В интернете кто-то прав. Но хочется уточнить.

Читать »

Решаем проблему ERROR 1348 column password is not updatable при обновлении пароля root в MySQL / MariaDB

В MySQL есть временами непонятные ограничения, которые не позволяют привычным нам образом его использовать. Однако, если разобраться, то всё начинает иметь смысл.

Читать »
Фото Как сделать свою middleware в Django (с примерами)

Как сделать свою middleware в Django (с примерами)

Middleware или "промежуточное программное обеспечение" - элегантный способ установить общие правила обработки запросов и ответов приложения. Давайте напишем парочку middleware, чтобы понять, как они работают.

Фото Добавляем поддержку медиа-файлов в Django проект

Добавляем поддержку медиа-файлов в Django проект

Современные сайты редко ограничиваются только текстом и вёрсткой. Часто в заметках красуются фотографии, а рядом с описанием товаров - их изображения.

Фото Настройка журналирования (логирования) в Python с примерами

Настройка журналирования (логирования) в Python с примерами

Во время работы программы часто нужно сохранять некоторые важные записи о процессе выполнения команды. В Python есть довольно мощный модуль для работы с логами - давайте разберёмся с тем, как его использовать.

Фото Так ли безопасен Linux? Несколько коммитов с уязвимосятми в stable

Так ли безопасен Linux? Несколько коммитов с уязвимосятми в stable

Исследователи сумели пройти code-review с реквестами в ядро Linux, заведомо содержащими добавление уязвимостей.

Фото Примеры работы с NoSQL базой данных Redis из Python

Примеры работы с NoSQL базой данных Redis из Python

База данных Redis имеет множество возможностей для оптимизации работы программ и добавления различных занимательных возможностей ваших проектов. Поэтому, безусловно, стоит обсудить, как с ней работать из Python.

Фото Три примера работы с SQL базой данных в Python — Pony ORM (бонус)

Три примера работы с SQL базой данных в Python — Pony ORM (бонус)

К заметкам про работу с базой данных из sqlite3, sqlalchemy.Table и sqlalchemy.orm решил добавить и заметку про Pony ORM — крутую, но несколько эзотерическую ORM для Python.

Фото Три примера работы с SQL базой данных в Python (sqlalchemy.orm)

Три примера работы с SQL базой данных в Python (sqlalchemy.orm)

Многие приложения на Python используют базу данных для хранения и эффективного использования их в своей работе. В этот раз на примере sqlalchemy.orm

Фото Три примера работы с SQL базой данных в Python (sqlalchemy.Table)

Три примера работы с SQL базой данных в Python (sqlalchemy.Table)

Многие приложения на Python используют базу данных для хранения и эффективного использования их в своей работе. И сделать это можно разными способами.