【问题标题】:Remote MySQL access with PHP cPanel configuration使用 PHP cPanel 配置远程 MySQL 访问
【发布时间】:2012-05-31 07:40:31
【问题描述】:

这真的很简单。但我无法解决,所以希望有人能尽快给我答案。

我有两个独立的服务器。 MySQL 数据库托管在服务器 #1 上,该服务器上的 PHP 文件通过查询运行网站。现在我想通过远程访问同一个数据库并运行数据库查询,在网站 #2 上拥有相同的内容。

我已授予对服务器 #1 上数据库的远程 IP 访问权限。我已将相同的 PHP 文件(在服务器 #1 上进行查询)复制到服务器 #2,并将“localhost”更改为该服务器的 IP 地址。用户名和密码保持不变。

当我运行那个 PHP 文件时,我收到一条消息“未找到数据库”。

这是访问服务器 #1 上的数据库的 PHP 代码,数据库所在的服务器是同一台服务器:

$user_name = "database_xxx";
$password = "xxx";
$database = "database_name";
$server = "localhost";

这是第二种情况,服务器 #2 上的 PHP 文件应该访问同一个数据库:

$user_name = "database_xxx";
$password = "xxx";
$database = "database_name";
$server = "xx.xxx.xxx.xxx"; //IP address of server #1

【问题讨论】:

  • 请发布您的连接代码,请随意省略实际的主机名/用户名/密码。还要确保您没有防火墙阻止访问,并且用户已配置为能够远程访问服务器。
  • 已发布。据我所知,防火墙未启用,除非防火墙是应该关闭的默认功能。用户与第一种情况相同。
  • 也许您的问题会更恰当地表述为:“如何解决 MySQL 远程数据库连接问题?” - thegeekstuff.com/2010/08/allow-mysql-client-connection

标签: php mysql cpanel remote-access remote-server


【解决方案1】:

您说您已经检查了防火墙并确保远程主机正在使用数据库连接到计算机,因此这些都已退出。之后最容易检查的是权限。请记住,权限已授予user@host,而您可能仅授予了user@localhost 的访问权限。之后,是时候take a look at your database configuration.

【讨论】:

  • 这可能是答案,但我使用的是cPanel,我不知道如何将用户与主机链接,我只能添加一个新用户并单独输入远程IP,但不能一起使用.所以我不知道用户oddsnavi_xxx是否只能从localhost访问。
  • 当我在 phpMyAdmin 中运行 SHOW GRANTS 时,在所有四个结果中我都看到了 user@localhost。
【解决方案2】:

如果您使用 Cpanel,您真正应该做的是转到数据库下的远程 MySql...在它要求允许连接的输入字段中。只需输入服务器#2 的域名,输入您在问题中提供的相同配置,但这次,不是将服务器#1 的 IP 地址放在服务器#2 Php 连接代码中,而是输入服务器#1 的域名。例如

$user_name = "database_xxx";
$password = "xxx";
$database = "database_name";
$server = "server#1.com"; //Domain name address of server #1

【讨论】:

  • 不管有没有 www 都不起作用。问题似乎是只允许 root 用户(或 database_xxx 用户)从 localhost 访问数据库。我不知道如何从任何地方授予该用户访问权限。
  • 您必须在没有“www”的情况下包含它...这就是为什么在 Server#1 中您必须通过添加它来在远程 MySql 中指定该规则。 Goto Remote MySql - 输入字段“ADD HOST”只需输入 Server#2 的域名。并在上面的代码中用于 $server 的 Server#2 连接 -> 在此处添加 Server#1 的域名。这应该使您能够远程连接到服务器#1 的数据库。确保 $user_name、$password 和 $database 名称与服务器#1 相同
  • 不起作用。用户显然只有在从 localhost 登录时才能访问,我不知道如何更改。
  • 您可以请求您的主机为您执行此操作。如果您的控制面板只接受 localhost 访问。您可以做的另一件事是,在 Remote MySql 下的“ADD HOST”输入字段中。使用通配符代替接受任何范围的 IP 地址。即将这个符号放在那里“%”并将其添加为连接主机。然后在 $server 信息的 Server#2 php 代码中,添加 Server#1 的域名。试试看它是否有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-18
  • 2023-03-27
  • 2017-09-02
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
相关资源
最近更新 更多