mysql问题:accessdeniedforuser'root@localhost'(usingpassword:YES)

错误1045(28000):用户'root'@'localhost'访问被拒绝(密码:YES)

首先用英文解析:ERROR1045(28000):用户'root访问被拒绝'@'localhost'(使用密码:是);分析的地方有两个:①Accessdenied;②usingpassword:NO/YES

acc出现“essdenied”的原因可能有以下几种:

1)MySQL服务器停止

2)用户的端口号或IP导致

3)MySQL配置文件错误----my.ini等文件

4)root用户密码不正确

如果MySQL未启动,重新启动MySQL服务器:netstartmysql

如果用户的端口号与IP(3306/3307)不匹配,则打开my.ini文件。
做出改变。
编辑所有内容并将其替换为:port=X

my.ini文件意外输入了无效内容,我不知道它去了哪里。
复制并替换文件;my.ini文件已经有人解释和评论了

root用户密码不正确,见下面解决方法

出现“usingpassword”的原因如下:

未输入密码:

密码不正确:

解决方法:

进入MySQL安装目录并浏览找到该文​​件my.ini;

在[mysqld]后面添加“skip-grant-tables”(使用setpasswordfor将密码设置为无效,不需要密码输入更多即可之后登录)

skip-grant-tables#在my.ini中,[mysqld]下添加一行,开启登录时的授权检查跳过

尽可能少的操作

重启MySQL服务器。

登录MySQL,输入mysql–uroot–p;直接按Enter键。

输入“root”@的setpassword无效。
'localhost'=password('123456');

粘贴到my.ini文件中,这样以后就不用输入密码了

从my.ini中删除skip-grant表,然后重新启动MySQL服务器:netstopmysql;netstartmysql;

再次设置密码:setpasswordfor'root'@'localhost'=password('123456');

密码设置成功。


注意:Skip-Name-Resolv#防止MySQL对外部连接执行DNS解析。
该选项允许MySQL消除执行DNS解析的需要。
但需要注意的是,启用该选项后,所有远程主机连接权限都必须使用IP地址,否则MySQL无法正常处理连接请求!