2017-08-31 16 views
1

CentOS7にnginx/php5.6がインストールされています。 MS SQL 2008 R2は別のサーバーで作業しています。 MSSQLはTCP接続、カスタム(非ドメイン)ユーザ、ファイアウォールを無効にしていますが、HeidiSQLとその設定を別のWindowsマシンから使用して接続できます。 私はCentOSからMSSQLにtelnetすることができます(また、ネットワークパケットのペイロードに指定された長さが読み取られたバイト数と一致していないため、接続が閉じられました。 MSSQLログ、ここではエラーはありません)。CentOS7からのmssqlへの接続エラー

php_mssqlまたはsqlcmdを使用してcentosからmssqlに接続できませんでした。

php > mssql_connect('***:***', '***','***'); 
PHP Warning: mssql_connect(): Unable to connect to server: *** in php shell code on line 1 

私も試してみましたTSQL/FreeTDSの:PHPインタラクティブの間に

Microsoft (R) SQL Server Command Line Tool 
Version 13.1.0007.0 Linux 

[[email protected]***]# /opt/mssql-tools/bin/sqlcmd -S *** -U *** 
Password: 
Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : Login timeout expired. 
Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : TCP Provider: Timeout error [258]. . 
Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : Unable to complete login process due to delay in prelogin response. 

:sqlcmdの中に

/etc/freetds.conf has section 
[myserver] 
     host = *** 
     port = *** 
     client charset = UTF-8 
     tds version = 8.0 //also tried 7 

[[email protected]*]# tsql -S myserver -U *** 
Password: 
locale is "en_US.UTF-8" 
locale charset is "UTF-8" 
using default charset "UTF-8" 
5 //begins to count, i could't understand what does it mean 

はまた、それをすべてをきれいにし、php7.0をインストールしようとしましたsqlsrv拡張子付き - 同じ問題。

CentOS servとMSSQLが別々のネットワークにあり、そのサーバからmssqlをpingできませんでしたが、telnetで接続できるようになりました。それは大きな問題です。

今、私はどこから掘り出したのか、何か提案してください。

+0

[PDO with dblib driver](http://php.net/manual/en/ref.pdo-dblib.php)を使用しようとしましたか? PHP 5.6とMSSQL Server 2k8でデビアンでうまくいってください。 – Ayak973

+0

@ Ayak973あなたのアイデアに感謝します。同じエラーです。しかし、問題は解決されました。ネットワークの設定ミスによって発生しました。私はtelnet接続を行うことは可能ですが、正常に接続することはできませんが、私たちのIT担当者は30分以内にこの問題を修復しました。 – NiPh

答えて

0

これはネットワークの設定ミスに起因していましたが、私はそれが可能であることを正確には理解していません。通常は接続できませんが、IT担当者は30分以内にこの問題を修復しました。

関連する問題