mysql问题:access denied for user 'root@localhost'(using password: YES)

 我来答
候如曼0H8
2020-03-18 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:25%
帮助的人:977万
展开全部
错误1045(28000):用户'root'@'localhost'(使用密码:YES)拒绝访问

首先解析此英文:ERROR
1045
(28000):
Access
denied
for
user
'root'@'localhost'
(using
password:
YES);解析的地方有两处:①Access
denied(拒绝访问);②using
password:NO/YES

1.
出现access
denied的原因有如下可能:
1)mysql的服务器停止
2)用户的端口号或者IP导致
3)mysql的配置文件错误----my.ini等文件
4)root用户的密码错误
若MySQL已经没有启动,重启MySQL服务器:net
start
mysql
若用户的端口号与IP(3306/3307)不一致,打开my.ini文件进行编辑。全部编辑替换为:
port=X
my.ini文件误输入无效内容,不知道到何处。复制替换该文件;有人已经对my.ini文件进行解释以及注释
root用户密码错误,
解决方案见下文
2.
出现
using
password的原因如下是:
不键入密码:

错误的密码:

解决方案:
到安装的MySQL的目录下,找my.ini文件;

在[mysqld]后添加skip-grant-tables(使用
set
password
for设置密码无效,且此后登录无需键入密码)
skip-grant-tables

#在my.ini,[mysqld]下添加一行,使其登录时跳过权限检查

尽量少操作
重启MySQL服务器。

登录mysql,键入mysql
–uroot
–p;直接回车(Enter)

键入无效set
password
for
‘root’@‘localhost’=password(‘123456’);

在my.ini文件添加从此后无需键入密码
再把my.ini的skip-grant-tables删除,然后重启MySQL服务器:net
stop
mysql
;net
start
mysql;
再次进行设置密码:set
password
for
‘root’@‘localhost’=password(‘123456’);

设置密码成功。。。
注:skip-name-resolv

#禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时候。但是需要注意的是,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式了,否则MySQL将无法正常处理连接请求!
仇淑珍展月
2020-03-16 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:35%
帮助的人:935万
展开全部
这个错误的意思是root密码错误,如果不知道root的密码,请换一个能登陆的用户名和密码。
---
以上,希望对你有所帮助。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
拓跋秀荣巩寅
2020-03-17 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.3万
采纳率:30%
帮助的人:1047万
展开全部
重新启动一下mysql
linux下的一般做法是
比如说mysql安装在/usr/local/mysql
/usr/local/mysql/bin/mysqld_safe
--skip-grant-tables
这样启动后,你可以直接用mysql
-uroot
登录进去之后
GRANT
ALL
PRIVILEGES
on
*.*
to
'root'@'localhost'
identified
by
'密码';
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
守雁虞碧
游戏玩家

2020-03-20 · 游戏我都懂点儿,问我就对了
知道大有可为答主
回答量:1.4万
采纳率:35%
帮助的人:903万
展开全部
在Mysql的安装文件里面有个mysql的库,这是个系统库,安里面有一个user表,user表里面用username与host做双主键,
如果这张表中没有root,localhost这一行字段,那么你这个用户是无权限登陆进localhost,root也不例外,
但是默认情况下是有这个字段的,所以肯定是你安装失败,或者有人把你这张表里面的相应的这行给删掉了(mysql在你删掉系统表里不会提示,就是你删掉mysql这个系统库也不会提示)
所以最简单的做法就是替换你的mysql库,找到一个可用的mysql库,直接把里面的内容copy过来就OK了
2楼的做法实际上就是在user表里面加上了root,localhost这一条记录
我空间有相应的文章,你可以看下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
桓温廉癸
2020-03-19 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.4万
采纳率:28%
帮助的人:739万
展开全部
1先关闭mysql
window下在你的mysql安装目录下
例如c:\mysql2\bin\mysql-nt
stop;
2
c:\mysql\bin\mysql-nt
--skip-grant-tables
3
mysql
-uroot
4
use
mysql
5
update
user
set
password
=
password('新密码')
where
user='root'
and
host='localhost'
6
flush
privileges;
7
c:\mysql\bin\mysql-nt
restart;
如果在linux下把mysql-nt
换成mysqld_safe

mysql-nt
--skip-grant-tables
mysq-nt后面是参数
你要手工写上去。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式