mysql 访问被拒绝‘root’@‘计算机名称’

mysql 访问被拒绝‘root’@‘计算机名称’

每次我尝试连接数据库时都会收到此错误

    Warning: mysqli_connect() [function.mysqli-connect]: (28000/1045): 
Access denied for user 'root'@'name of the computer' (using password: YES) in PATH_TO_FILE on line 8

我检查了权限,这就是我得到的

GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' WITH GRANT OPTION

使用该命令

show GRANTS for "root"@"127.0.0.1" 

此外这是我连接的方式

$mysqli = mysqli_connect('path to server', 'root', 'gourami',"recherche");

但正如您所看到的,错误消息中的用户名并不相同......

我不知道发生了什么,因为这应该正常地工作。

我想知道是不是我的主机被阻止了,但我以前也遇到过这个问题,但消息不一样。我用命令修复了它。

flush hosts;

但这次没有奏效

数据库在另一台服务器上,之前一切正常,但现在由于某种原因我无法连接。

答案1

如果您的“拒绝访问”消息显示‘root’@‘计算机名称’……那么您可能需要授予‘root’@‘计算机 IP 地址’访问权限。

答案2

我建议将非 root 用户添加到您的数据库。使用 root 将 PHP 脚本连接到数据库可能不是一个好主意。

grant some permissions on webDB.* to webUser identified by 'really_good_password'

要查看你的 webUser 需要什么权限,请查看 MySQL 文档http://dev.mysql.com/doc/refman/5.1/en/grant.html#grant-database-privileges

这样,如果有人获取了你的 webUser 的账户信息,你就可以限制他们可能造成的损害

答案3

SELECT `Host`, `User` FROM `mysql`.`user`;

这将显示每个 MySQL 用户可以登录的当前主机。如果您需要从任何主机访问,则应将其更新为%,但严格不建议将其用于生产服务器。为了从您知道其 IP 地址的服务器进行访问,其 IP 地址应该位于主机列中。

在此处输入图片描述

相关内容