Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Can';t通过外部连接连接到SQL server,但通过内部连接连接良好_Php_Sql Server - Fatal编程技术网

Php Can';t通过外部连接连接到SQL server,但通过内部连接连接良好

Php Can';t通过外部连接连接到SQL server,但通过内部连接连接良好,php,sql-server,Php,Sql Server,在与SQL server相同的网络上的内部连接上,我可以使用以下连接字符串连接OK: $servername = "1.1.1.1\namedinstance"; $loguser = "user"; $logpassword = "password"; $database = "dbname"; $odbc="odbc:Driver={SQL Server};Server=$servername;Dat

在与SQL server相同的网络上的内部连接上,我可以使用以下连接字符串连接OK:

$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);
但是,我从外部服务器收到以下错误消息:

“致命错误:未捕获PDO异常:SQLSTATE[HYT00]SQLDriverConnection:0[Microsoft][ODBC驱动程序17 for SQL Server]登录超时已在中过期…”

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


你知道我为什么不能进行外部连接吗?

允许在外部防火墙上使用TCP端口1433,你需要与防火墙团队联系

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

查看SQL错误日志,查看是否有关于该错误的更多信息。并验证您是否有到端口1343的UDP连接,以及到命名实例实际侦听的任何端口的TCP连接。可能只是防火墙问题。您可能需要重新配置命名实例以侦听固定端口,并在防火墙中配置该端口。@DavidBrowne Microsoft ok,那么这可能是sql/port/firewall配置问题?我会让系统管理员检查设置。thx用于响应。