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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql问题:access denied for user 'root@localhost'(using password: YES)相关的知识,希望对你有一定的参考价值。

连接时提示 :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将无法正常处理连接请求!

参考技术A

话说本人比较粗心犯过的一个错误是,输入mysql -uroot -p

后面带多了一个分号,也会提示这样的错误,把分号去掉了就好

参考技术B 回答

在MySQL的使用过程中,我们可能会碰到“Access denied for user \'root\'@\'localhost\' (using password:YES)”的问题,那么接下来我们就来解决它。经过我的百度查询最后得出结论:出现这种错误有两种可能,一是MySQL的root用户的密码错误,二是权限不够的问题。通常解决办法是修改密码。。。由于我使用的是Windows系统,所以方法也是Windows系统的修改方法:1、开始 → 搜索栏里面输入cmd → 右键cmd.exe选择以管理员的身份运行(亦可以在C:\\Windows\\System32目录下找到这个cmd.exe,右键,以管理员身份运行)2、输入net stop mysql停止MySQL服务3、输入命令行来到mysql的bin目录下,输入下列粗体命令

D:\\MySQL\\bin>mysqld --defaults-file="D:\\MySQL\\my.ini" --console --skip-grant-tables等一下,显示出以下结果说明MySQL启动:170215 22:26:09 [Warning] The syntax \'--log\' is deprecated and will be removed inMySQL 7.0. Please use \'--general_log\'/\'--general_log_file\' instead.170215 22:26:09 [Warning] The syntax \'--log_slow_queries\' is deprecated and will be removed in MySQL 7.0. Please use \'--slow_query_log\'/\'--  slow_query_log_file\' instead.170215 22:26:09 [Warning] The syntax \'--log\' is deprecated and will be removed in MySQL 7.0. Please use \'--general_log\'/\'--general_log_file\' instead.170215 22:26:09 [Warning] The syntax \'--log_slow_queries\' is deprecated and will be removed in MySQL 7.0. Please use \'--slow_query_log\'/\'--slow_query_log_file\' instead.170215 22:26:09 [ERROR] The update log is no longer supported by MySQL in version 5.0 and above. It is replaced by the binary log. Now starting MySQL with --log-bin=\'\' instead.170215 22:26:09 InnoDB: Started; log sequence number 0 3242

4、再以管理员的身份打开一个cmd.exe,输入命令行来到mysql的bin目录下,输入:mysql -uroot mysql5、进入mysql之后,输入命令行修改密码:mysql>update user set authentication_string=password(\'123456\') where user=\'root\';6、刷新权限:mysql>flush privileges;7、退出mysql:mysql> quit;8、关闭MySQL:D:\\MySQL\\bin>mysqladmin shutdown(出现错误,则:mysqladmin -uroot -p shutdown 然后输入新密码)9、至此修改密码完成,可以输入命令行:net start mysql 启动MySQL服务,mysql -uroot -p ,输入密码就可以进入mysql了。

有些复杂,希望可以帮到你

参考技术C 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后面是参数 你要手工写上去。
参考技术D 在Mysql的安装文件里面有个mysql的库,这是个系统库,安里面有一个user表,user表里面用username与host做双主键,
如果这张表中没有root,localhost这一行字段,那么你这个用户是无权限登陆进localhost,root也不例外,
但是默认情况下是有这个字段的,所以肯定是你安装失败,或者有人把你这张表里面的相应的这行给删掉了(mysql在你删掉系统表里不会提示,就是你删掉mysql这个系统库也不会提示)
所以最简单的做法就是替换你的mysql库,找到一个可用的mysql库,直接把里面的内容copy过来就OK了
2楼的做法实际上就是在user表里面加上了root,localhost这一条记录
我空间有相应的文章,你可以看下

解决mysql"Access denied for user'root'@'IP地址'"问题

在另一台服务器使用 MySQL-Front链接时:

解决方法: 在MySQL服务器上使用root登录后,执行如下SQL语句:

 mysql 登录命令: >mysql -u root -p;

然后执行如下命令:

1. GRANT ALL PRIVILEGES ON *.* TO \'myuser\'@\'%\' IDENTIFIED BY \'mypassword\' WITH GRANT OPTION; 2.FLUSH   PRIVILEGES;

执行后连接成功:

 

还有一种可能就是密码输入错误了。

 

以上是关于mysql问题:access denied for user 'root@localhost'(using password: YES)的主要内容,如果未能解决你的问题,请参考以下文章

Access denied for user ''@'localhost' to database 'mysql'问题

MySql access denied for user错误

启用远程 MySQL 连接:ERROR 1045 (28000): Access denied for user

Ubuntu 18 mysql数据库登陆报错“Access denied for user”

Mysql Access denied for user 'root'

MySQL Access denied for user root@localhost 解决方法