gpt4 book ai didi

php - 连接到目标机器上的 mySql 数据库的问题

转载 作者:行者123 更新时间:2023-11-30 22:52:15 25 4
gpt4 key购买 nike

我正在使用 hostgator 来托管我的网站,并且我已经添加了我的 IP 地址作为远程访问主机。然后我连接了 mySql workbench 并测试了连接,我得到了所有参数都正确的消息。在 hostgator 上,我将自己添加为管理员用户,授予自己所有权限。现在我想使用 PDO 通过 PHP 脚本操作数据库,但这是我在尝试运行 PHP 文件时在浏览器中遇到的错误:

连接失败:SQLSTATE[28000] [1045] 用户 'user'@'host' 的访问被拒绝(使用密码:YES)

在 mySQL workbench 用户和权限选项卡上,我得到这个:

您当前使用的帐户没有足够的权限来更改 MySQL 用户和权限。

我不确定这里出了什么问题,而且我对此很陌生。有人可以帮忙吗?

编辑:

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 中设置所有这些。

关于php - 连接到目标机器上的 mySql 数据库的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27845377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com