MySQL告诉我通过PHP脚本访问时凭据不正确

MySQL告诉我通过PHP脚本访问时凭据不正确,php,mysql,database,Php,Mysql,Database,我可以用计算机访问我的数据库 mysql -u root -p 然后输入我的密码 但是当我尝试通过php脚本登录时 $link = mysqli_connect('localhost', 'root', 'mypassword'); 我得到以下错误 Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in /Library/WebSer

我可以用计算机访问我的数据库

mysql -u root -p
然后输入我的密码

但是当我尝试通过php脚本登录时

$link = mysqli_connect('localhost', 'root', 'mypassword');
我得到以下错误

Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in /Library/WebServer/Documents/connect/index.php on line 6
当我跑的时候

SELECT USER(),CURRENT_USER();
在MySQL中,我得到以下内容(重新格式化)

因此,我知道登录函数中的三个参数是正确的,但我无法登录

我将感谢任何帮助

编辑:这是补助金

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*0503AA35367B049092549C66DFE0D6C3AA3C4970' WITH GRANT OPTION || GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION 

编辑:明确地说,解决我的问题的方法是使用127.0.0.1而不是localhost。

此错误通常是因为用户名密码组合不正确

用户
root
通常没有密码,除非您添加了密码。尝试进入PHPMYADMIN或其他配置文件,并查找
root
的密码

另一个问题是,您可以尝试连接到特定的数据库(mysqli_connect的
第四个
参数,并对用户
根用户
执行
显示权限
),以确保您拥有特权
root
可能没有必要的授权,我认为这就是可能发生的情况


编辑:在评论中回答,将
localhost
更改为
127.0.0.1
,类似于服务器托管环境中的一些配置内容

,但我可以使用我添加的用户名root和密码成功登录。请尝试为
mysqli\u connect
root
已授予权限的第四个参数添加有效的
db\u name
,并告诉我发生了什么。您的密码有“@”里面有符号吗?我不认为这是原因(尽管它是一个PHP操作符)。您的
localhost
是否连接不正确?您可以尝试将其更改为
127.0.0.1
Yes!非常感谢你。如果我在…查看php文件,为什么本地主机不能工作?您是否正在通过运行服务器。WAMP或XAMPP或其他环境?
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*0503AA35367B049092549C66DFE0D6C3AA3C4970' WITH GRANT OPTION || GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION