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