【问题标题】:Can't connect to SQL server through external connection, but connects fine through internal connection无法通过外部连接连接到 SQL Server,但通过内部连接可以正常连接
【发布时间】:2020-10-02 16:25:07
【问题描述】:

在与 SQL 服务器在同一网络上的内部连接上,我可以使用以下连接字符串进行连接:

$servername = "1.1.1.1\namedinstance";
$loguser = "user";
$logpassword = "password";
$database = "dbname";

$odbc="odbc:Driver={SQL Server};Server=$servername;Database=$database;";
$db = new PDO( $odbc , $loguser, $logpassword);

但是,我从外部服务器收到以下错误消息:

“致命错误:未捕获的 PDOException:SQLSTATE[HYT00] SQLDriverConnect: 0 [Microsoft][ODBC Driver 17 for SQL Server]登录超时已过期...”

我还可以从外部连接到我们的旧 SQL 服务器,该连接字符串与上面的新连接字符串之间的唯一区别是添加了命名实例(以前的工作版本仅通过 IP 地址连接)。

任何想法为什么我不能外部连接?

【问题讨论】:

  • 查看 SQL ERRORLOG 以查看是否有关于该错误的更多信息。并验证您是否有与端口 1343 的 UDP 连接和与命名实例实际侦听的任何端口的 TCP 连接。可能只是防火墙问题。您可能需要重新配置命名实例以侦听固定端口并在防火墙中进行配置。
  • @DavidBrowne-Microsoft 好的,所以很可能是 sql / 端口 / 防火墙配置问题?我会请我们的系统管理员检查设置。谢谢回复。

标签: php sql-server


【解决方案1】:

在您的外部防火墙上允许 TCP 端口 1433,您需要联系防火墙团队

来源:您的应用服务器 IP。 目标:您的 SQL Server IP。 端口: 1433(如果您没有更改默认端口,如果更改,请请求防火墙团队允许该端口)

【讨论】:

    猜你喜欢
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多