我是用mysql workbench连接MYSQL数据库,hostname为我本机ip的时候,出现问题:Access denied for user 'root'@'localhost'(using password:YES)。
百度了一下找到了下面这个博主的文章,然后根据自己这边具体情况,结合评论区一些建议做了修改,亲测可用
先说一下,我是win7,MySql Server 5.7
---------------------
作者:jack__love
来源:优快云
原文:https://blog.youkuaiyun.com/jack__love/article/details/79019049
版权声明:本文为博主原创文章,转载请附上博文链接!
经查找资料发现是root帐户默认不开放远程访问权限,所以需要修改一下相关权限。
解决方案:
-
打开MySQL目录下的my.ini文件,在文件的最后添加一行“skip-grant-tables”,保存并关闭文件。(WIN7默认安装,my.ini在C:\ProgramData\MySQL\MySQL Server 5.6)
-
重启MySQL服务。
-
通过命令行进入MySQL的BIN目录,输入“mysql -u root -p”(不输入密码),提示输入密码不用管,直接Enter回车即可进入数据库。(WIN7默认安装,BIN目录为:(不一定是C,看你mysql装哪个盘)C:\Program Files\MySQL\MySQL Server 5.6\bin) 【这一步原博评论区很多人反馈说报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO),我也遇到了,发现是mysql服务没有正确重启,去windows开始菜单搜索“服务”,然后点进去把mysql服务重启一下,就可以了】
-
执行“use mysql;”,使用mysql数据库。
-
执行“update user set password=PASSWORD("123456") where user='root';”(修改root的密码) 【5.7的可以试试这个,也是原博评论里翻到的建议 update user set authentication_string=PASSWORD("123456") where user='root';然后8.0以后的用这个 ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';】
-
打开MySQL目录下的my.ini文件,删除最后一行的“skip-grant-tables”,保存并关闭文件。
-
重启MySQL服务。
-
在命令行中输入“mysql -u root -p 123456”,即可成功连接数据库。
完成以上步骤,即可成功连接MySQL。