防火墙MS SQL服务器希望向Internet上的Ubuntu服务器提供数据。
因此,我建立了一条从MS SQL服务器到Ubuntu服务器的SSH隧道,要求Ubuntu将其port 1433通信发送到MS SQL的port 1433。
根据this Stack Overflow的答案,我认为我应该在MS SQL服务器上执行此操作:
ssh -R 1433:localhost:1433 ubuntu.example.com
这是Windows计算机,所以我在PuTTY中做到了:
在本地网络中,我已经测试过使用PHP连接到SQL Server,并且它可以正常工作。
$server = '192.168.0.12';
$user = 'buttle';
$pass = '1234';
mssql_connect($server,$user,$pass);
现在,我想尝试使用SSH隧道而不是“直接”连接来连接相同的两台计算机。所以我将$ server更改为此:
$server = 'localhost,1433';
然后,我使用PuTTy将SSH隧道从SQL Server计算机连接到Ubuntu计算机。也许这就是我要出问题的地方,因为我不知道自己在做什么。
我在Ubuntu机器上收到此PHP错误:
Warning: mssql_connect(): Unable to connect to server: localhost,1433
编辑:
还尝试了这个:
还有这个:
[![使用MS SQL服务器中指定的IP地址远程IPv4] [5]] [5]
最后,我已经解决了。看我的答案。
请您参考如下方法:
使用PHP的mssql函数的所有在线教程均假定您在Windows环境中运行PHP。显然,在Windows中,IP和端口号由逗号分隔,而在Linux中由冒号分隔。
// Linux running PHP
$server = 'localhost:1433';
// Windows running PHP
$server = 'localhost,1433';
像往常一样,数小时的问题归结为一个字节。




