PHP - 从不同服务器连接到MySQL数据库

4

我正在尝试从不同的服务器连接到一个托管在另一台服务器上的MySQL数据库,但是出现了错误。

我猜测可能与远程权限有关。这是我可以更改的内容还是需要让我的托管公司来更改?

<?php
$con = mysql_connect("mysql4-remote.hosting.net","myadmin","password123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
?>

无法连接到'mysql4-remote.hosting.net'上的MySQL服务器 (10060)PHP警告:mysql_connect() [function.mysql-connect]:无法连接到'mysql4-remote.hosting.net'上的MySQL服务器 (10060)位于D:\ websites \ abc123 \ www \ test.php的第2行


1
另一台服务器是否允许端口3306? - radosch
说实话,我不确定。我已经联系了技术支持,因为我认为他们需要允许按请求远程用户。 - Tom
确实,它也可以被隧道化,详见下面的答案。 - radosch
2个回答

6
我认为,您的登录凭据或网络设置可能有误: 请参考以下文章获取进一步帮助: http://wiki.answers.com/Q/What_does_MySQL_error_number_10060_mean 如果您无法从外部访问,请使用隧道技术。以下是一个示例:
$connection = ssh2_connect('SERVER IP', 22);  
ssh2_auth_password($connection, 'username', 'password'); 
$tunnel = ssh2_tunnel($connection, 'DESTINATION IP', 3307); 
$db = new mysqli_connect('127.0.0.1', 'DB_USERNAME', 'DB_PASSWORD',  
                         'dbname', 3307, $tunnel) 
    or die ('Fail: '.mysql_error()); 

1

您需要在 MySQL 的USER表中插入特定远程机器 IP 或通配符,以授予远程用户访问权限。

这个链接可以帮助您。点击这里


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接