【问题标题】:PHP PDO MySQL - not using the host specified on DSNPHP PDO MySQL - 不使用 DSN 上指定的主机
【发布时间】:2017-08-29 09:53:43
【问题描述】:

晚上好,

我一直在努力在我的配置文件中有两个数据库连接,一个是内部的,另一个是外部的。

$DB_host = '127.0.0.1';
$DB_port = '3306';
$DB_name = 'users';
$DB_user = 'root';
$DB_pass = 'obliquous';

$DB2_host = '123.123.123.123';
$DB2_port = '3306';
$DB2_name = 'pancakeshop';
$DB2_user = 'potato_shop';
$DB2_pass = 'ambiguous';

try
{
     $db = new PDO("mysql:host={$DB_host};dbname={$DB_name}",$DB_user,$DB_pass);
     $db2 = new PDO("mysql:host={$DB2_host};dbname={$DB2_name}",$DB2_user,$DB2_pass);
     $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     $db2->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
     echo $e->getMessage();
     die();
}

我用 127.0.0.1 完成的那个 - 意思是我为专用服务器指定的本地主机 - 它按预期工作,尽管 123.123.123.123 它使用本地 IP 地址而不是外部 IP 地址。

185.113.141.125 是 PHP 服务器运行的专用服务器。

它给我的错误如下:

SQLSTATE[HY000] [1045] 用户'potato_shop'@'185.113.141.125'的访问被拒绝(使用密码:YES)

代码语法有什么问题吗?

【问题讨论】:

  • “带有 123.123.123.123 的那个它使用本地 IP 地址而不是外部 IP 地址” 不表明了这一点完全没有
  • 固定 @Phil 我的意思是专用服务器 IP 地址。
  • 我仍然没有看到您提出的任何建议 $db2 连接正在使用本地 IP。您能否确切地说明您正在尝试做什么、您希望看到什么以及您实际看到了什么?并且不要使用像 "dedicatedServerIP" 这样的词。显示显示的错误消息。如果您必须混淆 IP 地址等详细信息,在示例代码中进行相同的更改
  • 我觉得现在更清楚了。
  • 不,不是。你的代码在哪里185.113.141.25

标签: php mysql pdo


【解决方案1】:

这是因为root accounts is only for the localhost host(至少在 Windows 中)。

如果您只是创建一个对pancakeshop 具有特权的用户,则更简单

CREATE USER 'not_root'@'123.123.123.123' IDENTIFIED BY 'ambiguous';

GRANT ALL PRIVILEGES ON pancakeshop.* To 'not_root'@'123.123.123.123' IDENTIFIED BY 'ambiguous';
FLUSH PRIVILEGES;

【讨论】:

  • 让我再做一件事……它不是 root 帐户,只是一个坏例子。
  • i.imgur.com/9X4e6Oz.png 非混淆代码和错误。
  • @JoãoRodrigues 就像我说过的,您是否在该主机上创建了用户?你可能不小心在 localhost 上创建了它
  • 185.113.141.225 是通过 cPanel 进行的网络托管。
猜你喜欢
  • 1970-01-01
  • 2013-11-10
  • 2010-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-19
  • 1970-01-01
相关资源
最近更新 更多