Access denied for user 'root'@'localhost' (using password: YES)

作者&投稿:郴黎 (若有异议请与网页底部的电邮联系)
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)~

SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES),是数据库错误造成的,解决方法如下:
1、首先需要更改root的权限远程的访问的权限,进行进入到自己数据库之后,进入mysql数据库中:use mysql。

2、进行执行update user set host='%' where user='root' 的命令进行执行。

3、执行了相关的命令之后,还是需要进行执行的flush privileges的命令。

4、还需要进行修改的是在etc/sysconfig/selinux进行编辑SELINUX=disabled中。

5、设置完成之后还是需要进行重启Linux,在访问之后,不再显示错误的内容。

mysql打不开,可能是文件损坏,我们可以重新安装来打开这个程序。
安装教程:
1、打开下载好SQL 所在的文件夹,双击运行里面的setup.exe文件。

2、选中“我接受许可条款和条件”,并点击下一步。

3、点击“安装”按钮。

4、点击“下一步”按钮。

5、点击“下一步”按钮。

6、等待检查完成后,点击“下一步”(注意:如果此处有错误的话,就需要先把错误解决了才能继续下面的安装,否则的话可能会导致后面的安装失败,那个IIS功能要求可以不用管):

7、等待安装程序。

8、将左边全部打钩,点击下一步:

9、点击“下一步”。

10、选择“使用内置系统账户”,然后点击下一步。

11、点击下一步。

12、点击下一步。

13、点击下一步。

14、点击“安装”按钮。

15、等待安装。

16、安装完成后,点击下一步。

17、点击“完成”,这样SQL Server 2005就安装好了。

18、从开始菜单里面打开SQL 。


错误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将无法正常处理连接请求!



解决方案:
1、打开MySQL目录下的my.ini文件,在文件的最后添加一行“skip-grant-tables”,保存并关闭文件。
2、重启MySQL服务。
3、在命令行中输入“mysql -uroot -p”(不输入密码),回车即可进入数据库。
4、执行,“use mysql;”使用mysql数据库。
5、执行,“update user set password=PASSWORD("rootadmin") where user='root';”(修改root的密码)
(期间我还select下user表中的记录,查询全部的时候显示了一些乱码,然后我只查询了user表中的Host、User、Password字段,貌似当时显示了3条记录,有1个没有名称。当然,为了解决问题,这些我也管不了了。)
6、打开MySQL目录下的my.ini文件,删除最后一行的“skip-grant-tables”,保存并关闭文件。
7、重启MySQL服务。
8、在命令行中输入“mysql -uroot -prootadmin”,问题搞定。

未给localhost root用户授权,新建一个localhost root用户,然后授权给他
create user 'root'@'localhost' identified by '你的密码';
grant all privileges on *.* to root@'localhost';
运行这两句sql语句后试下

如果你能登陆到数据库所在的服务器,那么可以尝试这个方法:
Windows下的实际操作如下
  1.关闭正在运行的MySQL。
  2.打开DOS窗口,转到mysql\bin目录。
  3.输入mysqld --skip-grant-tables回车。如果没有出现提示信息,那就对了。
  4.再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
  5.输入mysql回车,如果成功,将出现MySQL提示符 <
  6. 连接权限数据库<use mysql; (<是本来就有的提示符,别忘了最后的分号)
  6.改密码:< update user set password=password("520") where user="root"; (别忘了最后的分号)
  7.刷新权限(必须的步骤)<flush privileges;
  8.退出 < \q
  9.注销系统,再进入,开MySQL,使用用户名root和刚才设置的新密码登陆。

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


景东彝族自治县15550395417: Access denied for user 报错 -
淫侍缩泉: MySql远程连接时的“access denied for user **@**”错误,搞的我很头大,后来查出来解决方法.记录一下,怕以后再忘记:首先本地登陆MySQL,然后执行这两句代码:GRANT ALL PRIVILEGES ON *.* TO root@'e5a48de588b6e799bee5...

景东彝族自治县15550395417: 连接SQL数据时出现这个access denied for user '用户名'@'IP地址'是什么意思? -
淫侍缩泉: 如果是别人的服务器,那你就要有别人的使用者名称(root)和进入密码,,以及ip地址(或域名)建议你自己搭建个服务器,在本机运行,不懂请留言,我教你

景东彝族自治县15550395417: MySQL提示Access denied for user 'ODBC'@'localhost'错误 -
淫侍缩泉: 解决方法一:运行MySQL Server Instance Configuration Wizard,在“Please set the security options”一步,勾上“Create An Anonymous Account” 解决方法二:在命令行中,运行:...\depot> mysql -u-p depot_development

景东彝族自治县15550395417: Access denied for user 'root'@'localhost' (using password: YES) -
淫侍缩泉: 忘记mysql密码,使用不对的服务器密码,在连接服务器的时候,常常会提示 Access denied 错误,如下图所示:[plain] view plaincopy [root@localhost bin]# ./mysql -uroot -p12345 ERROR 1045 (28000): Access denied for user 'root'@'localhost' ...

景东彝族自治县15550395417: 安装mysql出现access denied for user 'root@localhost'(using password: YES) -
淫侍缩泉: 如果你能登陆到数据库所在的服务器,那么可以尝试这个方法:Windows下的实际操作如下1.关闭正在运行的MySQL.2.打开DOS窗口,转到mysql\bin目录.3.输入mysqld --skip-grant-tables回车.如果没有出现提示信息,那就对了.4.再开...

景东彝族自治县15550395417: 安装网站时出现这个错误:Access denied for user 'root'@'localhost' (using password: YES). -
淫侍缩泉: 请仔细检查一下连接文件数据库参数设置是否正确,与数据库空间控制面板是否相符.

景东彝族自治县15550395417: win7下安装MYSQL报错:access denied for user 'odbc'@'localhost'(using password: NO) -
淫侍缩泉: 几个可能: 1. 用户名、密码错误,所以无法访问 2. 数据库端设置了IP访问权限,不能用localhost访问.换成具体的IP地址试试. 3. 数据库端设置了相关操作权限,该用户没有create权限.mysql -u root -p mysql>use mysql; mysql>select 'host' ...

景东彝族自治县15550395417: 请问如何解决1044 access denied for user 'mysql'@'localhost' to database 'muni' -
淫侍缩泉: 权限不足 到mysql 里面的mysql数据库的user表里面修改一下 如下 根据自己情况增加记录 设置赋予的权限

景东彝族自治县15550395417: 出现access denied for agent changed问题怎么解决 -
淫侍缩泉: 排查思路: 这是与 uc请求的时候出问题导致.具体报错部分是uc_server/mode/user.php中的function init_input 函数部分的 ,对$agent进行了判断. if(($getagent&& $getagent != $this->input['agent']) || (!$getagent && md5($_SERVER['HTTP_...

景东彝族自治县15550395417: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) -
淫侍缩泉: MySQL安装时默认的用户是root,这里的root是指数据库的用户,root密码一般在初始化MySQL时存放在你的日志文件中,日志文件的存放路径可以通过my.cnf文件进行自定义. 使用如下方法即可解决,本人已验证可行. #1.停止mysql数据库/...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网