【问题标题】:Issues connecting to mySql database on target machine连接到目标机器上的 mySql 数据库的问题
【发布时间】:2015-03-06 21:03:51
【问题描述】:

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

【问题讨论】:

  • 使用用户名和密码可以通过shell成功登录吗?
  • 您必须在此处发布您的php 代码
  • 我查看了这篇帖子link,奇怪的是我什至没有一个 usr 目录来存放这个文件。所以不幸的是SSH连接失败。 @sanojlawrence 我编辑了我的主线程以包含 php 代码
  • @rads89 你不得不提$host="localhost";
  • @sanojlawrence 我没有尝试连接到本地主机。我实际上是在尝试连接到我的 hostgator 服务器。为了这篇文章的目的,我刚刚删除了 hostgator 服务器 IP 地址。

标签: php mysql pdo mysql-workbench


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    在您签入 my.cnf(适用于 Linux)或 my.ini(适用于 Windows)之前 bind-address=0.0.0.0

    如果绑定地址被禁用启用它..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-17
      • 1970-01-01
      • 2015-08-29
      • 2021-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多