我正在开发一个系统,我可以从多个位置更新一个小型数据库。我希望在我的家用计算机上托管数据库,并允许通过tcp / ip从其他两个位置连接到数据库。
到目前为止,我已完成以下任务:
我希望能够通过在其他PC上打开sql management studio并使用以下格式连接到数据库[ExternalIP] \ SQLEXPRESS但是到目前为止我还是无法这样做。我已经看过我的外部IP可能是什么了,我得到两个不同的值:
86.XX.X.XXX 66.XXX.XX.XX
当所有内容都已正确配置时,我是否应该使用这种格式的这些值中的任何一个来连接其他sql管理工作室?有没有我缺少的步骤?
答案 0 :(得分:5)
SQL Server的命名实例默认不在端口1433上侦听,而是在每个服务启动时确定的随机端口上侦听。它是 sql浏览器服务的功能,为客户端提供每个运行实例的实际端口(以及使用固定的1434 udp端口完成的端口)。
必要的步骤是将服务器配置为使用固定端口,然后设置防火墙和路由器以允许该端口。连接时,只需使用外部IP地址和端口,但不要使用实例名称(因为它会调用浏览器服务,而固定端口则不需要)。
要恢复,必要的步骤将是:
请注意,对于来自远程客户端的连接,作为服务器名称,您必须使用 86.XX.X.113,1433 (端口号用逗号分隔,如果是&#39则可选; s 1433)。请注意,即使您将其安装为SQLEXPRESS或其他任何名称,也没有实例名称。这是因为有一个固定的侦听端口(默认情况下与默认实例一样)。这消除了对浏览器服务和udp 1434的需求,以及动态端口转发的痛苦。
您还应检查您的ISP最有可能为您提供动态外部IP,以便在更改时重新配置客户端。或者您可以使用一些动态DNS服务。
答案 1 :(得分:1)
配置MSSQL Express 2014连接远程PC或PHP等。
查看视频教程Easy Config Server到MSSQL Express:
https://www.youtube.com/watch?v=5UkHYNwUtCo
Code Test Cliente Remote PHP:
$serverName = '192.168.1.64,49170'; //only the server name and ip MSSQL SERVER EXPRESS
$connectionInfo = array( "Database"=>"mydbName", "UID"=>"myUserId", "PWD"=>"myPass");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn ) {
echo "Connection established";
}else{
echo "Connection could not be established.";
die( print_r( sqlsrv_errors(), true));
}