【发布时间】: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