用户root @ localhost拒绝访问

时间:2015-08-29 15:30:10

标签: php mysql

我正在尝试连接到mysql,但它会发出警告       mysqli_connect():( HY000 / 1045):拒绝访问用户' root' @' localhost' (使用密码:是) 我认为用户名和密码是正确的,因为我可以访问komand行中的mysql。我还创建了另一个用户并授予他所有权限,但我仍然有这个警告。

我可以访问phpMyAdmin。我正在使用wamp服务器(apache 2.4.9)和mysql 5.1

     <?php
      $conn = mysqli_connect("localhost", "root", "password");
       ?>

3 个答案:

答案 0 :(得分:2)

如果用户存在且以下blahblah无关紧要,请让以下两行失败:

create user 'root'@'localhost' identified by 'blahblah';
create user 'root'@'127.0.0.1' identified by 'blahblah';

你的补助金:

grant all on *.* to 'root'@'localhost';
grant all on *.* to 'root'@'127.0.0.1';

将密码更改为您将记住的内容:

set password for 'root'@'localhost' = password('NewPassword');
set password for 'root'@'127.0.0.1' = password('NewPassword');

查看您拥有多少root用户。真实用户是用户/主机组合。密码将显示哈希:

select user,host,password from mysql.user where user='root';

select user,host,authentication_string from mysql.user where user='root';

上面的第二个是MySQL 5.7

如果您获得的不仅仅是上述两个用户,请删除其他用户,例如:

drop user 'root'@'%';   -- this is the wildcard hostname, can be a security risk
drop user 'root'@'::1';

仍然只有2个?希望如此。使用上面的select stmts进行检查。

请勿使用root连接用户应用。 root仅用于维护。如果它是服务器端代码,或者管理员正在运行它,则无关紧要。未受保护和/或注入有害语句的代码将以root身份运行。 所以那就是原因。

答案 1 :(得分:0)

wamp的mysql默认配置设置没有密码的用户名root

$conn = mysqli_connect("localhost", "root", "");

以上代码应该正常工作

答案 2 :(得分:-2)

如果您使用的是localhost。它没有密码。你会像这样设置它:

<?php
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("database name here") or die(mysql_error());
?>