为什么mssql_connect()无法通过隧道连接到mssql数据库。
我为远程服务器创建了隧道,如:
$ssh -L 1433:db_server:1433 user@mid_server
将本地端口1433转发到db_server。我测试了。
然而,当我尝试使用php连接到数据库时,它无法正常工作
mssql_connect("localhost:1433", 'db_user', 'db_password')
详情(已编辑):
答案 0 :(得分:1)
我通过对freetds.conf进行一些更改来修复它。
[global]
# TDS protocol version
; tds version = 4.2
到
[global]
# TDS protocol version
tds version = 7.0
并重新启动apache。
答案 1 :(得分:0)
我假设您正在从Linux(或MacOS)盒子连接到MSSQL服务器,可能使用freetds连接器。需要检查两件事:如果服务器正在正确监听端口,并且Linux机器上是否正确安装了FreeTDS。由于您可以与其他客户端连接,因此问题应该在FreeTDS上。
确保已安装并正确配置FreeTDS。尝试直接连接到服务器(它应该提示输入密码):
# tsql -S localhost -U db_user
如有必要,请调整freetds.conf上的端口/语言环境/版本信息。有关更多信息: