1

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サーバーがインストールされているリモートデータベースサーバー。DBサーバーにはファイアウォールがあります。mid_serverのみが接続できます
  2. mid_server:db_serverへの接続が許可されている中間
4

2 に答える 2

1

freetds.confにいくつか変更を加えることで修正しました

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

[global]
    # TDS protocol version
tds version = 7.0

そしてapacheを再起動します。

于 2013-05-07T05:33:30.420 に答える
0

Linux(またはMacOS)ボックスからMSSQLサーバーに、おそらくfreetdsコネクタを使用して接続していると思います。サーバーがポートを適切にリッスンしているかどうか、およびFreeTDSがLinuxマシンに適切にインストールされているかどうかを確認する必要があります。別のクライアントに接続できるため、問題はFreeTDSにあるはずです。

FreeTDSがインストールされ、適切に構成されていることを確認してください。次のコマンドでサーバーに直接接続してみてください(パスワードの入力を求められます)。

# tsql -S localhost -U db_user

必要に応じて、freetds.confのポート/ロケール/バージョン情報を調整します。詳細については:

于 2013-05-01T14:04:50.507 に答える