登录mysql报ERROR 1045 (28000): Access denied 解决方法

登录mysql时系统报错原因
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
原因一 可能是密码真的输入错误
原因二 安装时有问题,比如可能data目录没有等
解决方法:
1 没有data目录用命令建立
mysqld --initialize-insecure --user=mysql
 
2 NET stop mysql57
3 mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server 5.7\my-default.ini" --console --skip-grant-tables
另一个窗口 执行mysql -u root -p 直接回车进入控制台
4 use mysql

5 更改密码
  update user set password=PASSWORD('12345') where USER='root';// 5.7以前版本
  update mysql.user set authentication_string=password('oracle') where user='root' and Host = 'localhost';
  flush privileges;//5.7版本
 
6 查看用户
SELECT User, Host,authentication_string FROM mysql.user;