【问题标题】:ssh tunnel do not work for mssql_connect()ssh 隧道不适用于 mssql_connect()
【发布时间】:2013-03-27 07:44:20
【问题描述】:

为什么 mssql_connect() 无法通过隧道连接到 mssql 数据库。

我已经为远程服务器创建了隧道,例如:

$ssh -L 1433:db_server:1433 user@mid_server

这会将本地端口 1433 转发到 db_server。我测试过。

但是当我尝试使用 php 连接到数据库时它不起作用

mssql_connect("localhost:1433", 'db_user', 'db_password')

详细信息(已编辑):

  1. db_server :安装 sql server 的远程数据库服务器。数据库服务器有防火墙。只有 mid_server 可以连接
  2. mid_server : 允许连接db_server的中间位置

【问题讨论】:

  • 你试过用这个登录信息连接php吗?
  • 抱歉...我尝试在隧道开启时连接 Navicat。它使用 Navicat 连接相同的用户/密码。
  • 只是检查:网络服务器是否在本地主机上?
  • 你得到什么错误?
  • PHP 警告:mssql_connect():无法连接到服务器

标签: php sql-server


【解决方案1】:

我通过对 freetds.conf 进行一些更改来修复它

[global]
    # TDS protocol version
;   tds version = 4.2

[global]
    # TDS protocol version
tds version = 7.0

然后重启 apache。

【讨论】:

    【解决方案2】:

    我假设您正在从 linux(或 MacOS)机器连接到 MSSQL 服务器,可能使用的是 freetds 连接器。需要检查两件事:服务器是否正确监听端口以及 Linux 机器上是否正确安装了 FreeTDS。由于您可以连接其他客户端,因此问题应该出在 FreeTDS 上。

    确保已安装并正确配置 FreeTDS。尝试直接连接到服务器(它应该提示输入密码):

    # tsql -S localhost -U db_user
    

    如有必要,请调整 freetds.conf 上的端口/区域设置/版本信息。欲了解更多信息:

    【讨论】:

    • 我收到以下回复“错误 20009(严重性 9):无法连接:Adaptive Server 不可用或不存在操作系统错误 61,“连接被拒绝”
    猜你喜欢
    • 2017-12-18
    • 2020-07-28
    • 2019-08-07
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    • 2018-07-20
    • 2017-06-01
    • 2011-06-30
    相关资源
    最近更新 更多