Я все время получаю эту ошибку. Я просматривал несколько сайтов QA, пытаясь сбросить мой локальный mysql pw.
Я добавил таблицы пропуска
в [mysqld]
, и теперь я работаю в безопасном режиме. Я выполнил следующие шаги
mysqld_safe --skip-grant-tables &
use mysql;
update user set password=PASSWORD(”my_password”) where user=’root’;
Когда я перехожу к последнему шагу обновления, я получаю следующую ошибку:
ERROR 1064 (42000): 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 '("my_password") where user="root"' at line 1
Я также пробовал
UPDATE mysql.user SET
authentication_string=PASSWORD(''),
plugin='mysql_native_password'
WHERE User='root' AND Host='localhost';
и это
ALTER USER 'root'@'localhost IDENTIFIED WITH mysql_native_password BY 'root';
, но получаю ту же ошибку:
ERROR 1064 (42000): 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 'Ihost IDENTIFIED WITH mysql_native_password BY 'root'' at line 1
Не знаю, как сбросить мой пароль на этом этапе.
Я обновляю то, что работает для меня каждый раз, выполните следующие действия
Войдите как пользователь root
sudo mysql -u root
выберите mysql db
используйте mysql;
Проверьте плагин, используемый для желаемого пользователя, если это auth_login? измените это на mysql_native_password, используя этот запрос
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
Теперь используйте этот запрос для обновления пароля root или любого другого пользователя
ALTER USER 'root'@ 'localhost' ИДЕНТИФИКАЦИЯ С mysql_native_password BY 'newpassword';
Перезапустите службу mysql, используя
sudo systemctl перезапустить mysql