ホームページ >バックエンド開発 >PHPチュートリアル >: CentOS での mssql_connect() 接続の問題、「サーバーに接続できません」問題が発生します。

: CentOS での mssql_connect() 接続の問題、「サーバーに接続できません」問題が発生します。

WBOY
WBOYオリジナル
2016-06-23 13:46:081673ブラウズ

CentOS システムで mssql_connect() を使用すると、「サーバーに接続できません」というエラー メッセージが表示され続けます。

背景: centOS システムの Web サーバーは MSSQL データベース サーバーに接続する必要があります。 mssql データベースは MSSSQL2000 を使用します (MSSQL2008 も試しましたが、同じ問題がありました)。

centOS システムは、yum install メソッドを使用して Freetds および php-mssql モジュールをインストールします。phpinfo() を使用して、php-mssql が正常にインストールされたことを確認します。 tsql を使用して、centOS で mssql アカウントとパスワードへの接続をテストします。どちらも正しいです。ただし、PHP ファイルで mssql_connect() 関数を使用して接続すると、「サーバーに接続できません」というエラー メッセージが常に表示されます (error_log によるクエリ)。

プログラム コード:
$link = mssql_connect('192.168.100.10:1433', 'sa', '****') // ここには常にエラーが発生します。ポート番号を追加するか、 not: 1433、エラーは残ります (!$link)
{
die('Unable to connect! error: ' . mssql_get_last_message());
}


解決してください。


ディスカッションに返信 (解決策)

接続できないだけで、明確なエラー メッセージは表示されませんか?

mssql_get_last_message() を出力して内容を確認します
インストールは正常のようですが、権限はありますか? sa が SQL サーバーの記録に失敗する状況に遭遇しましたが、最終的な設定で解決しました
もう一度テストして、さらに詳細なエラーメッセージ

また、IP アドレスを localhost または 127.0.0.1 に変更して再試行してください

権限がないので、当然接続できません

これは元のコードですか?なぜ mysql_connect() を間違って書いたのでしょうか? ? ? ?

プロジェクトは以前のデータベース サーバーに接続する必要があります。以前のデータベースは MSSQLServer2000 でしたが、現在は Web 環境に移行する必要があります。したがって、phpのmssqlモジュールを使用する必要があります。

Web サーバーは Linux 構造を使用し、データベースは別の Windows MSSqlServer サーバーであるため、localhost または 127.0.0.1 を使用するのは間違いです。最初のステップではデータベースが接続されていないため、mssql_get_last_message() には情報フィードバックが残ります。
tsql を使用してクエリを実行しましたが、すべてのクエリは正常です。
さらに、別のコンピューターで、freetds と php を手動で解凍してインストールし、再コンパイルしてインストールすると、mssql データベースに正常に接続できます。
私の判断では、yum メソッドを使用して freetds と php-mssql をインストールするときに、不足している手順があるかどうかはわかりません。そこで、この分野の専門家がいるかどうかを尋ねています。

データベース側は別の Windows MSSqlServer サーバーです!!!

ドメインを越えてアクセスしていますか?
デフォルトでインストールされている MSSQL では、通常どおり接続するには、サーバー構成マネージャーに移動してリモート接続を開く必要があります。 。
さらに、リモート リンクもファイアウォールの影響を受ける可能性があります。どちらかの側 (つまり、クライアントとサーバー) のファイアウォールによって、通常のリンクが禁止される場合があります。
最初にネットワーク環境を構成し、次に MSSQL 構成を確認し、最後に PHP プログラムを確認することをお勧めします。

すでに述べました: TSQL は MSSQL への接続をテストしており、クエリは正常です。パラメータには問題ないのですが、mssql_connect()関数が使用できません。もちろん、MSSQL サーバーの構成の問題ではなく、ファイアウォールやネットワーク環境の問題でもありません。


centOS で /var/log/httpd/error_log ログをクエリすると、「...警告: mssql_connect(): サーバーに接続できません: 192.168.100.10:1433 in .....」

私の判断 おいしいです. freetds と php-mssql をインストールするとき、何が問題だったのかわかりません。

centOS で yum 設定を使用した経験のある人からアドバイスをお願いします。

自分で解決してください。

2 つの方法:
1. コマンド setenforce 0 を実行します。
2. /etc/selinux/config を開き、SELINUX を無効に設定し、再起動します。

私もまったく同じ問題に遭遇しました。どうすれば解決できますか?

私も質問を提案しました。もっと詳しく。 http://ask.csdn.net/questions/69462

投稿者はそれを解決しましたか?

警告: mssql_connect(): サーバーに接続できません:

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。