【问题标题】:Connecting to remote MS SQL database through SQLSRV driver通过 SQLSRV 驱动连接到远程 MS SQL 数据库
【发布时间】:2014-06-22 18:01:16
【问题描述】:

我正在尝试连接到远程 ms sql db(不是本地主机),但每次它在成功之前超时...

我很确定问题出在 $serverName 变量上,是否可以通过 Plesk Parallels 检查它的值是多少?

    <?php
        $serverName = "server's ip address/database name"; //serverName\instanceName
        $connectionInfo = array( "Database"=>"database name", "UID"=>"DBusername", "PWD"=>"DBpassword");
        $conn = sqlsrv_connect( $serverName, $connectionInfo);

        if( $conn ) {
             echo "Connection established.<br />";
        }else{
             echo "Connection could not be established.<br />";
             die( print_r( sqlsrv_errors(), true));
        }
    ?>

【问题讨论】:

  • 在 Windows 中打开命令提示符,然后输入以下内容:telnet ip_address 1433。结果如何?
  • C:\Users\itay>telnet (IPADDRESS) 1433 Connecting To (IPADDRESS)...无法在端口 1433 上打开与主机的连接:连接失败
  • 那么问题来了。 A. 此主机不接受与 SQL 服务器的远程连接,B. SQL 服务器未运行,或 C. SQL 服务器未侦听默认端口 1433。

标签: php sql sql-server


【解决方案1】:

尝试将精确的端口号注入到 ServerName 中,例如

<?php
  $serverName=127.0.0.1\SQLEXPRESS,1433; //networkAddr\InstanceName,<portNum>
?>

如果这样做,请尝试使用 IP 地址而不是 NetBios 名称,因为 ICMP 协议通常会因安全策略而被阻止。

此外,默认端口 1433 可能被阻止。在这种情况下,应联系服务器管理员提供实际的连接要求。

【讨论】:

    【解决方案2】:

    问题是我的 ip 地址不被允许连接到数据库,在我联系了我的托管服务提供商后,他们给了我这个权限并且成功了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-13
      • 2011-12-27
      • 1970-01-01
      • 2014-10-26
      • 1970-01-01
      • 2019-05-08
      相关资源
      最近更新 更多