mysql问题:access denied for user 'root@localhost'(using password: YES)
怎么解决 !!! 别跟我说 密码错误什么的
我就想知道 怎么能弄好它
我的这个mysql软件是安装魔兽世界单击版 带的。。 解压缩出来 一用就是 这个效果了
mysql-nt 这个文件有 但是mysql-nt --skip-grant-tables 没有。。。 展开
错误1045(28000):用户'root'@'localhost'(使用密码:YES)拒绝访问
首先解析此英文:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES);解析的地方有两处:①Access denied(拒绝访问);②using password:NO/YES
出现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用户密码错误, 解决方案见下文
出现 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将无法正常处理连接请求!
话说本人比较粗心犯过的一个错误是,输入mysql -uroot -p;
后面带多了一个分号,也会提示这样的错误,把分号去掉了就好
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后面是参数 你要手工写上去。
如果这张表中没有root,localhost这一行字段,那么你这个用户是无权限登陆进localhost,root也不例外,
但是默认情况下是有这个字段的,所以肯定是你安装失败,或者有人把你这张表里面的相应的这行给删掉了(mysql在你删掉系统表里不会提示,就是你删掉mysql这个系统库也不会提示)
所以最简单的做法就是替换你的mysql库,找到一个可用的mysql库,直接把里面的内容copy过来就OK了
2楼的做法实际上就是在user表里面加上了root,localhost这一条记录
我空间有相应的文章,你可以看下
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 '密码';