每次我尝试连接数据库时都会收到此错误
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 地址应该位于主机列中。