Очевидно, что смена пароля супер-пользователя должна быть особо безопасной,
чтобы случайно кто-то не смог получить прав, с которыми он может натворить
много бед. Так что обычный 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-а.