Linux/window环境下登录mysql 出现错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

一、问题背景

在linux/windows环境下登录已安装好的mysql

二、报错截图如下


linux/windows环境下出现的报错相同

三、解决方式

  • Linux环境下

(1) 修改/etc/my.cnf,在[mysqld]的位置添加skip-grant-tables,用来跳过密码验证的过程,如下图所示

(2)重启mysql,重启之后即可进入mysql
systemctl restart mysql

(3)修改mysql用户名和密码
mysql> use mysql;
mysql> update user set password=password("你的新密码") where user="root";
mysql> flush privileges;
mysql> quit

(4)然后去掉/etc/my.cnf中刚才添加的配置,并重启mysql 服务即可

  • windows环境下

(1)停止MySQL服务:net stop mysql
(2)跳过权限验证:mysqld --console --skip-grant-tables --shared-memory(不要关闭窗口,另起一个新的cmd窗口)
(3)用管理员身份打开新的“命令提示符”(注意:步骤二的窗口不要关闭),在新窗口中输入:
mysql
flush privileges;
(4)修改密码
mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘HuaZai12345!’;
(5)退出后,新打开cmd窗口输入net start mysql,启动mysql
(6)再输入命令 “ mysql -uroot -p ” ,然后输入刚才设置的密码,就可以正常登录到MySQL服务器了

  • docker环境下

进入容器: docker exec -it mysql /bin/bash
使用MySQL命令打开客户端: mysql -uroot -proot --default-character-set=utf8

posted @ 2021-09-01 10:12  枫叶艾辰  阅读(339)  评论(0)    收藏  举报