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

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

ПрограммыDataBaseНастройкиБезопасностьMariaDB / MySQL

Очевидно, что смена пароля супер-пользователя должна быть особо безопасной, чтобы случайно кто-то не смог получить прав, с которыми он может натворить много бед. Так что обычный UPDATE нам не подходит:

mysql> UPDATE mysql.user SET Password=PASSWORD('s3cr3t') WHERE User='root';
ERROR 1348 (HY000): Column 'Password' is not updatable

Поэтому нам нужна команда, которая на которую можно настроить иные привелегии, ведь право обновления значений в таблице mysql.user может быть и у других пользователей, обслуживающих данный сервер. С другой стороны обновлять структуру таблицы mysql.user обычно не надо, более того – это довольно важное и ответственное действие. Поэтому именно изменением таблицы или же ALTER-ом можно изменить пароль пользователя root.

ALTER USER 'root'@'localhost' IDENTIFIED BY 's3cr3t';

После чего не забываем обновить привелегии на нашем MySQL или MariaDB сервере:

flush privileges;

Вот так занятно придумали разработчики MySQL/MariaDB решить вопрос с правами на смену пароля root-а.

Фото Решаем проблему 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 никто не отменял – пользуются ещё. Так вот не так давно стала возникать эта ошибка. Как её чинить? В этой заметке.

Фото Лучше плохо, но сейчас. Взгляд на пути развития ПО
Лучше плохо, но сейчас. Взгляд на пути развития ПО

Сейчас такие языки как Perl и Ruby чувствуют себя не лучшим образом. Но ещё 10 – 15 лет назад они были на "гребне волны".