在目标计算机上连接到mySql数据库的问题

时间:2015-01-08 16:51:00

标签: php mysql pdo mysql-workbench

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

连接失败:SQLSTATE[28000] [1045] Access denied for user 'user'@'host' (using password: YES)

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

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();
    ?>

2 个答案:

答案 0 :(得分:0)

您用于连接的用户似乎具有非常有限的访问权限。要查看/更改用户权限,您需要具有更多权限的用户(例如标准root用户)。连接可能会失败,因为您连接的计算机不允许该特定用户使用。请注意,在MySQL中,您可以指定允许用户连接的主机。

您的MySQL安装所需的服务器与运行脚本的服务器相比,这是相当不寻常的。这就是为什么通常足以使用localhost或环回地址(请注意此处还有IPv4和IPv6之间的差异,正如我在故障排除视频中概述的那样:https://www.youtube.com/watch?v=DCgRF4KOYIY)。但是,如果服务器确实不同,请确保允许您的用户从运行php脚本的服务器进行连接。在最简单的情况下,您可以添加anyhost条目(例如“myuser @%”),但访问规则越严格越好。还要确保此用户可以访问您工作所需的架构和表。如果您有一个允许更改其他用户权限的用户,您可以在MySQL Workbench中设置所有这些。

答案 1 :(得分:0)

SQLSTATE [28000] [1045]拒绝访问用户'用户'@'主持人'(使用密码:是)

上述错误的原因是您的密码错误。

在您检查my.cnf(对于Linux)或my.ini(对于Windows)之前,绑定地址= 0.0.0.0

如果禁用绑定地址,则启用它..