Решаем проблему ERROR 1348 column password is not updatable при обновлении пароля root в MySQL / 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
- От Google не уйти!?
- У коммерческой Ubuntu увеличится время поддержки до 10 лет
- Читеры. Документальный фильм
- Как синхронизировать локальную Git версию репозитория с серверной

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

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