1

SQL ServerへのODBC接続を作成しようとしていますが、作成するとエラーが発生します。

Connection failed:
SQLState: '01000'
SQL Server Error: 10060
[Microsoft][ODBC_SQL Server Driver][TCP/IP Sockets] COnnectionOpen (Connect()).
Connection failed:
SQLState: '08001'
SQL Server Error: 17
[Microsoft][ODBC_SQL Server Driver][TCP/IP Sockets] SQL Server does not exist or access denied.

これが私が試したことです:

  1. ファイアウォールの問題ではありません。SQLServerのファイアウォールをオフにして、クライアントをオフにしてみました。クライアントから1433をTelnet接続することもでき、それは正常に機能します。
  2. アクセスの問題ではありません:クライアントで使用しているアカウントを使用して(SQL Server認証を使用して)SQL Server自体を含め、さまざまなコンピューターからログインできます
  3. ホスト名とIPアドレスにpingを実行できます。(私は両方を試しました)

私が考えることができる唯一のことは、クライアントコンピューターがWindows Server 2003であり、さまざまな役割が設定されていることです。

  • ファイルサーバー
  • アプリケーション・サーバー
  • ターミナルサーバー
  • ドメインコントローラー
  • DNSサーバー

なぜこれらのサービスが設定されているのかわかりませんが、当分の間、それらを停止することはできません。それはこれらのいずれかであり、もしそうなら、SQLをブロックしている可能性のあるそれらの側面のいずれかを無効にする方法があります。

どんなアドバイスも本当にありがたいです!

4

5 に答える 5

5

問題が見つかりました。何らかの理由で、クライアントで SQL が使用されていないにもかかわらず、SQL がインストールされ、[すべてのプログラム] -> [Microsoft SQL Server] -> [クライアント ネットワーク ユーティリティ] に移動すると、プロトコルの TCP/IP がポート 4717 を使用していることがわかりました。そのポートが使用されている理由がわかりません。さらに、なぜそれが問題になるのかわかりません.odbc接続をセットアップしただけで、(クライアントで)SQLサーバーをまったく使用していませんでした。いずれにせよ、これを通常のポート (1433) に変更したところ、ブームのように、ODBC 接続が魅力的に機能します。

于 2012-11-15T20:44:01.053 に答える
1

問題のサーバーが名前付きパイプを使用するように構成されていない可能性はありますか?

原因
この接続の試行が失敗した最も一般的な理由は、このDSNまたはODBCデータソースがTCP /IPソケットNet-Library(Dbmssocn.dll)を使用して接続を確立しようとしたことです。SQLServerはTCP/IPソケットクライアントの着信接続をリッスンしていないため、接続は失敗します。ISQL / wから、上記の2番目のエラーメッセージが返されます。OSエラーは10061で、失敗した関数呼び出しはConnectionOpen(connect())でした。

回避策
デフォルトでは、SQLServerは名前付きパイプクライアントによって作成された着信接続をリッスンします。名前付きパイプは、クライアントがSQL Serverバージョン4.2、6.0、および6.5サーバーに接続するためのデフォルトのIPCメカニズムです。名前付きパイプDLLはDbnmpntw.dllであり、Windows\SystemまたはWinnt\System32ディレクトリに配置する必要があります。TCP /IPソケットのnetlibDLLはDbmssocn.dllであり、Windows\SystemまたはWinnt\System32ディレクトリにある必要があります。この問題の最も一般的な解決策は、名前付きパイプを使用して接続するようにクライアントコンピューターを構成することです。名前付きパイプの構成MicrosoftDataAccess Components(MDAC)ODBCドライバーがコンピューターにインストールされている場合は、[新しいデータソースの作成]ウィザードの2番目の手順でこの変更を行うことができます。

注:MDACドライバーは次の場所からダウンロードできます。

http://msdn2.microsoft.com/en-us/data/aa937730.aspxクライアントを構成するには、[新しいデータソースの作成]ウィザードを起動し、[クライアント構成]ボタンをクリックして、バージョンに基づいて次の手順を実行します。使用しているSQLServerODBCドライバー:

SQLServerODBCドライバーバージョン3.50の場合

Click the Net Library tab and use the drop down list box to set the 
default network (Net Library) to Named Pipes.
On the Advanced tab, remove any advanced entries that reference the 
server you are connecting to.
Click Done.

SQLServerODBCドライバーバージョン3.70の場合

In the Network Libraries section of the Edit Network Library Configuration 
dialog box, select Named Pipes.
Click OK.

MDAC ODBCドライバーがインストールされていない場合は、SQL Serverクライアント構成ユーティリティツールを使用して、既定のNet-Libraryを名前付きパイプに設定できます。クライアントユーティリティは、i386ディレクトリのSQLServerCDからインストールできます。

ソース:http ://support.microsoft.com/kb/195566

于 2012-11-15T20:19:36.173 に答える
0

デフォルトでは、SQL Native Client は MSSQLSERVER インスタンスを探すようです。ただし、SQLEXPRESS を使用すると、それを介したすべての接続が失敗します。

非常に奇妙ですが、MSSQLSERVER インスタンス名で SQL Server をインストールしてみてください。動作するはずです!

于 2015-02-18T17:23:37.790 に答える