MySQL修改密码后无法进入问题ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor) | 您所在的位置:网站首页 › mysql登陆报错 › MySQL修改密码后无法进入问题ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor) |
MySQL之前无密码,使用 UPDATE mysql.user SET authentication_string=’xxxx’ WHERE user=’root’ and host=’localhost’; 修改增加密码后登入一直报错, root以及密码确定是正确,却怎么也无法从本地登录MySQL,提示 ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES); 网上查找原因:mysql库中的user表缺少一个root指向host:localhost的数据项,只有一个root指向host:主机名的数据项,故怎么也无法利用root账户登录MySQL。 但是按照方法关闭MySQL进程然后在启动mysql的参数中加入 –skip-grant-tables来无密码登入,MySQL却无法启动;去除该参数后服务正常启动。而CMD控制台跳转到mysql的bin目录下,再输入mysqld –skip-grant-tables ,依然无效。此时密码登入失败,无密码登入失效。 多方查找后发现: 在MySQL 8.04前,执行:SET PASSWORD=PASSWORD(‘[新密码]’);但是MySQL8.0.4开始,这样默认是不行的。因为之前,MySQL的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。 发现是由于版本原因导致: 在MySQL8版本下: 1. mysqld –console –skip-grant-tables –shared-memory 可以无密码启动服务 2. 然后另开窗口:mysql.exe -u root 登入 3. 进入mysql数据库:(可以证明并非user和host不匹配问题) UPDATE mysql.user SET authentication_string=” WHERE user=’root’ and host=’localhost’; 5.操作完成后退出重新登录(无需密码); MySQL8正确修改密码语法: 进入数据库:use mysql; 修改密码:ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密码’; 刷新权限: FLUSH PRIVILEGES; 一切回归正常使用! |
CopyRight 2018-2019 实验室设备网 版权所有 |