【问题标题】:PHP - Connect to different servers databasePHP - 连接到不同的服务器数据库
【发布时间】:2020-01-09 20:56:54
【问题描述】:

我正在“server1”上进行开发。 我需要将此服务器上处理的数据保存到“server1”数据库中。 但是,我还需要将一些数据保存到外部“server2”数据库中。

问题是当我连接到另一台服务器的数据库时,我得到了一个相当奇怪的错误。

错误代码:1045

错误消息:拒绝用户“server2-username”@“server1-name”访问(使用密码:YES)

为什么错误信息中会出现“server1”?

对我来说,消息是这样说的:“嘿,我在 'server1' 数据库上找不到 'server2-username'”。我对么?当我连接到“server2”时,为什么会这样说?

$connection = new mysqli('server2-ip', 'server2-username', 'server2-password', 'server2-database');

if($connection->connect_errno) {
    echo $connection->connect_errno;
    echo $connection->connect_error;
}

知道我应该如何连接到“server2”吗?或者我应该检查什么?

这是我第一次想连接到另一个服务器数据库。我还没做过,也不知道怎么回事。

【问题讨论】:

  • 您是否使用变量进行连接?如果是这样:您是否尝试输出这些以检查它们是否包含正确的值?
  • 不,我没有使用变量。
  • “为什么 'server1' 出现在错误消息中”...因为那是您连接到数据库的 from 机器。它不是数据库服务器的名称。在 MySQL 中,您可以拥有相同的用户名但后缀不同的主机名,并且如果您希望他们可以被视为具有不同权限的单独用户。您必须使用户能够从您想要允许的所有不同主机名进行连接(或者您可以将其设置为全部允许)。我建议你阅读dev.mysql.com/doc/refman/8.0/en/account-names.html
  • 这篇文章有一个关于指定不同主机名(或IP地址)的简单实例:linuxize.com/post/…
  • 是的,他们需要为您的特定用户名启用它,并确保它具有与从 server2 本地连接时相同的权限。

标签: php mysql


【解决方案1】:

此错误表示 'server2-username' 尝试从 'server1-name' 连接但未成功。 请检查 server2 上的权限 user2 以从远程主机进行连接

【讨论】:

    【解决方案2】:

    它需要一个与连接user@hostname 匹配的帐户,即server2-username@server1-name...只是Web 服务器与server1-name 上的mySQLd 运行在同一主机server1-name 上。这可能看起来令人困惑,但主机名来自脚本运行的位置

    您需要将用户server2-username@server1-name 添加到server2-name 上的mySQLd...如果您无法设置该帐户,最常见的是JSON API 可用作Web 服务;如果他们希望自己导入,也可以选择将数据导出/导入为任何格式。

    SSL 隧道甚至可以通过:3307 上的本地环回接口127.0.0.1 连接(问题不是bind-address = 127.0.0.1,而是没有这样的user@hostname 可用):

    shell_exec("ssh -fNg -L 3307:server2-ip:3306 server2-username@server2-ip");
    $connection = new mysqli('server2-ip', 'server2-username', 'server2-password', 'server2-database', 3307);
    

    但是,建议选择设置远程用户帐户或使用 API,因为使用 shell_exec() 创建的 SSL 隧道可能随时关闭,所有这些都需要进行相应的测试和处理。当隧道进入时,错误消息至少是server2-username@server2-nameserver2-username@localhost

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-16
      • 2017-02-26
      • 2014-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多