我正在使用hostgator
来托管我的网站,并且已将我的IP
地址添加为远程访问主机。然后我连接到mySql工作台并测试了连接,我得到所有参数都正确的消息。在hostgator上,我将自己添加为授予自己所有权限的管理员用户。现在我想使用 PDO 通过 PHP 脚本操作数据库,但这是我尝试运行 PHP 文件时在浏览器中遇到的错误:
连接失败:SQLSTATE[28000] [1045] Access denied for user 'user'@'host' (using password: YES)
在mySQL工作台用户和权限选项卡上,我得到这个:
"The account you are currently using does not have sufficient privileges to make changes to MySQL users and privileges.
"
不确定这里出了什么问题,我对此很陌生。有人可以帮忙吗?
编辑:
下面的PHP代码:
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
//this block tries to connect to the database
//if there's an error connecting, the code under catch will
//and the program will end
$host="host";
$port="3306";
$user="xxx";
$password="xxx";
$dbname="database";
try {
$conn = new PDO("mysql:host=$host;dbname=$dbname;", $user, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
//$con->close();
?>
您用于连接的用户似乎具有非常受限的访问权限。为了查看/更改用户权限,您需要具有更多权限的用户(例如标准根用户)。连接可能失败,因为该特定用户不允许从中连接的计算机。请注意,在MySQL中,您可以指定允许用户连接的主机。
您的MySQL安装需要与运行脚本不同的服务器,这是相当不寻常的。这就是为什么通常使用 localhost 或环回地址就足够了(请注意,正如我在故障排除视频中概述的那样,这里还有 IPv4 和 IPv6 之间的差异:https://www.youtube.com/watch?v=DCgRF4KOYIY)。但是,如果服务器确实不同,请确保您的用户被允许从运行 php 脚本的服务器进行连接。在最简单的情况下,您可以添加一个anyhost
条目(例如"myuser@%"),但是访问规则的限制性越强越好。此外,请确保此用户有权访问工作所需的架构和表。如果您有允许用户更改其他用户的权限,则可以在MySQL Workbench中设置所有这些内容。
SQLSTATE[28000] [1045] 用户"用户"@"主机"的访问被拒绝(使用密码:是)
上述错误的原因是您的密码错误。
在你签入my.cnf(对于Linux)或my.ini(对于Windows)bind-address=0.0.0.0之前
如果禁用绑定地址,请启用它..