サイトからデータベースに接続できないようです。私はこのエラーが出ます:
名前付きパイププロバイダ、エラー:40 - SQL Serverへの接続を開けませんでした
パブリックIPアドレスと同様にローカルIPアドレスを使って接続しようとしました。私はもう試した:
ここで他に何ができますか?
この問題を解決するのはとても簡単です。
ステップのスクリーンショット
そして最も簡単な解決策 - あなたのスラッシュが戻っているかどうかを確認してください...
SERVER/INSTANCENAMEのすべてが正しく設定され、名前付きパイプ、ユーザーアクセス権などが正しく設定されていない場合、何が問題なのかを突き止めるのに1時間ほどかかりましたそれは私を襲いました、それはスラッシュではありません、それはバックスラッシュです(\
)。
恐怖、恥….
SQL Serverをインストールした後は、3つのステップからなるプロセスです。
サーバーを再起動します。SQL Config Manager - > SQL Serverサービス - > SQL Server(SQLEXPRESS) - >右クリック - >再起動
適切なサーバー名とインスタンス名を使用します(両方とも必要です)。通常、これは。\ SQLEXPRESSになります。たとえば、QueryExpress接続ダイアログのスクリーンショットを参照してください。
そこにあります。
SQL Server 2012開発者をインストールしたところです。最初のSSISパッケージを作成していたときに、[接続マネージャ]ボックスの[SQL Server 2012データツール]でデータ接続タスクを作成しようとしたときに、このパイプエラーが発生しました。私は上記の記事の助けを借りて解決しました。
名前付きインスタンスを選択した場合、名前付きインスタンスをSSQDatabase1と呼び、PCの名前はPCX1になります。 SSQDatabase1だけでなくPCX1\SSQDatabase1を入力しないと、名前付きパイプエラーが発生します。
MSDN Socialのスレッド、Re:Named Pipes Provider、エラー:40 - SQL Serverへの接続を開けませんでした、あなたのエラーに関連する可能性のある問題のかなりまともなリストがあります。あなたはそれらのうちのどれかがあなたが経験しているものであるかもしれないかどうか見ることを望むかもしれません。
私はちょうどTCP/IP、VIA、SQL Server構成マネージャで名前付きパイプを有効にしました、私の問題は解決しました詳細についてはこれを参照してください 名前付きパイプエラー40の解決
SERVER \\ INSTANCE NAMEを使用します。私のプロジェクトでダブルバックスラッシュを使用すると、問題が解決しました。
Damianに感謝します...
TCP/IP名前付きパイプ...両方とも有効
Web設定....(ローカルホスト用)
<add name="FooData" connectionString="Data Source=localhost\InstanceName;Initial Catalog=DatabaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
同じ問題がありましたか。いくつかのサーバーを移行する必要があったときに6時間ほどかかりました。このトピックや他のトピックで利用可能なすべての提案を試してみました。
解決策はサーバの再起動と同じくらい簡単でした!
私の場合は、私はスタンドアロンサーバーを持っていた、私はいくつかの番号にSQL Serverポートのデフォルトポート1433を変更し、SQLサービスを有効にするために再起動、私はログインすれば管理スタジオを通してSQLサーバーに接続できたサーバーに。しかし、私はSQL Serverを介して私のローカルマシンから接続することができませんでした、私はエラーを得ていました:
SQL Serverへの接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからなかったかアクセスできませんでした。インスタンス名が正しいことを確認してください。
そのSQL Serverは、リモート接続を許可するように構成されています。 (プロバイダ:名前付きパイププロバイダ、エラー:40 - SQL Serverへの接続を開けませんでした)(Microsoft SQL Server、エラー:5)
以下をすべて確認して確認しました
- 名前付きパイプ/ TCPが有効になります。 - リモート接続は許可されています。 - Windowsファイアウォールがオフになっている - Windowsファイアウォールに移植するための例外を作成しました(サーバーは同じサブネットネットワークにあるので、これは私の場合は必要ありませんでした)。 - SQL Server構成マネージャのすべてを有効にしました。
それから私はデフォルトの1433にポート番号を変更し、SQLサーバサービスを再開しました、そして問題は解決しました、そして私は私のローカルManagement StudioからSQLサーバを接続することができます。
私は同じ問題を抱えていました。私はMSSQL Server Management Studio 2017を使用し、次の手順でこの問題を解決しました。
そしてそれを修正しました。
次の手順を試してください。
[サービス]ウィンドウを開きます([ファイル名を指定して実行]をクリックして、「services.msc」と入力します)。
SQLサービス(SQLプレフィックス付き)を探しています。
起動します(起動できない場合は、手順4に進みます)。
各サービスへの右クリック - >プロパティ - >タブへの変更 "ログオン" - > "ローカル..."としてログオンを選択 - > 0K。その後、SQLサービスを再開してください。
Open SQLを試してデータベースに接続します。
Asp.netコアを使用していて、appsettings.jsonを使用してサーバーをlocalhostのように記述し、有効な名前付きパイプのSQLインスタンス名を次のように記述した場合
"ConnectionString": {
"dewDB": "server=localhost\\dewelopersql;database=dewdb;User ID=sa;password=XXXXX",
},
あなたはおそらくあなたのDB名が正しくないことに気付くでしょう、あなたは "DESKTOP-0I14BKI"のようにVSでサーバ名を見るでしょうが、あなたが見るだろうSSMSを開くなら、DESKTOP-0I14BKI\SQLBLAHBLAH単にVS接続プロパティの "サーバー名"に "\ SQLBLAHBLAH"(インスタンス名)を追加するだけです。
: と表示されます。
私はこのページでほとんどすべてを試しましたが、実際に解決する必要があるものである根本的な問題がいくつかありました。 SQL Server構成マネージャを開くなど、特定のことができず、WMIプロバイダファイルが破損しているか、存在しません。
私が読んだものに従ってこの問題を解決するために退屈な方法がたくさんありますが、tweaking.comからのツールは私のWMI(Windows Management Instrumentation)プロバイダーファイルを削除して交換/修復することができました。
私はコンピュータの修理をしていたし、全体的にtweaking.comツールは本当に私を感動させた、そしてそれは私が行ったWMIエラーフォーラムページの1つから示唆された。
この問題を解決した後、ローカルとリモートの両方で自分のSQLデータベースに接続することができました。
これが誰かに役立つことを願っています。
私は自分のエラーに気づく前にこの1つの年齢のために苦労しました - 私は接続文字列でセミコロンの代わりにカンマを使用しました
もう1つ解決策があると思います。上記の方法をすべて試してもまだ接続できなかったため、最近コンピュータ名を変更しました。私はサーバー名を変更しました..サーバー名=>(もっと見る)=>データベースエンジンの下で、新しいサーバーはコンピューターの新しい名前と同じであることがわかりました。これでうまくいったし、人生もまたよかった。
私はあなたの問題を解決するために以下のステップを提案しましたどのように私はエラー 'Named Pipes Provider、error 40 - ' SQL Serverへの接続を開けませんでした
[コンピュータの管理] - > [SQLとサービス]に移動して、TCP/IP、Piped Protocolを有効にし、サービスがオンになっていることを確認します。ファイアウォールのポートを有効にします。管理者としてコマンドプロンプト - >からログインしてみてください。最後のユーザー名は(ローカル)\ SQLEXPRESSでなければなりません。お役に立てれば。
私はこの問題を抱えていましたが、上の提案のどれもそれを直しませんでした。
WebサイトをIISに展開したときにこの問題が発生していました。この問題を解決するには、デフォルトのアプリケーションプールに対して詳細設定を行い、identityプロパティをデフォルトからAdministratorに変更しました。
非常に簡単な解決策
(local)\InstanceName
を使ってください。それは私のために働きました。
私は同じ問題を抱えていて、私のファイアウォール(ESET)を無効にすることによって問題を解決しました。
この問題を解決するための最初のステップは、他のコンピュータから自分のコンピュータに対してpingを実行することです。ファイアウォールがオンになっていると、自分でpingを実行できない可能性があります。私は自分のパソコンにpingを実行しようとしましたが、pingは失敗しました(サーバーからの応答がありませんでした)
私にとっては、ファイアウォールの問題でした。
最初にポートを追加しなければなりません(1444と多分1434のような)
C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe
そして
%ProgramFiles%\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Binn\SQLAGENT.EXE
私がこの問題に遭遇した2回目は、ファイアウォールに戻ったときです。パスが正しくなかったため、フォーム12から13を更新する必要がありました。プログラムとサービスタブの参照をクリックするだけでこれを実現することができました。
最後に、コマンドを実行してみてください
EXEC xp_readerrorlog 0、1、 "サービスプリンシパル名を登録できませんでした"、Null
私にとっては、それはエラーの理由を返しました
TL; DR;あなたのSQL Serverインスタンスは、動いていない動的ポートを使用しています。 SQL Serverに静的ポート#1433を使用させる。
完全な詳細:まず第一に、デフォルトと名前付きインスタンスが混在しているか、名前付きインスタンスのみである場合(私の場合)は、この問題が起こりやすくなります。
重要な概念:コンピューターにインストールされたMicrosoft SQL Serverの各インスタンスは、着信接続要求をlistenするために異なるポートを使用します。 SQL Serverのデフォルトインスタンスはポート#1433を使用します。名前付きインスタンスをインストールすると、名前付きSQL Serverインスタンスに対応するWindowsサービスの起動時に決定される動的ポートの使用が開始されます。
私のコードは、私が自分のVMで持っていた唯一の名前付きSQL Serverインスタンスに接続するのに失敗しました(エラーコード40)。あなたは可能な解決策の下に試すことができます:
解決策1:SQL Serverインスタンスに接続しようとしているクライアントコードは、SQL Serverブラウザサービスの助けを借りて、名前付きインスタンスが受信接続を待機しているポート番号を見つけます。 SQLブラウザサービスがコンピュータで実行されていることを確認してください。
解決策#2:下のスナップショットに示すように、SQL Server構成マネージャから、名前付きSQL Serverインスタンスが使用しているポート番号(黄色)を確認します。
そのポート番号を接続文字列で明示的に使用するか、または以下に示すsqlcmd
を使用してください。
sqlcmd -s mymachinename,11380 -i deleteDB.sql -o SQLDelete.txt
解決方法#3:名前付きインスタンスに、デフォルトのインスタンスで使用されているポート#1433を使用させる。既定のSQL Serverインスタンスは既にポート#1433を使用しているため、これが既定のSQL Serverインスタンスをコンピュータにインストールしていない場合にのみ機能します。同じポート番号を2つの異なるWindowsサービスで使用することはできません。
TCP Dynamic ports
フィールドをブランクにし、TCP Port
フィールドを1433にマークします。
以下のように接続文字列のポート番号を変更します。
sqlcmd -s mymachinename\instanceName -i deleteDB.sql -o SQLDelete.txt
または
sqlcmd -s mymachinename,1433 -i deleteDB.sql -o SQLDelete.txt
注:TCP/IP設定を変更するたびに、それに対応するWindowsサービスの再起動が必要になります。
興味深いことに、同じエラーを再現するために動的ポート設定に戻ったときにエラーを解決した後、それは起こりませんでした。理由がわからない。
SQL Serverの動的ポートの詳細については、以下の興味深いスレッドを読んでください。
複数のインスタンスでSQL Server Portを設定する方法
this blogから私は自分の問題を解決するための手がかりを得ました。
SQL Server構成マネージャを開く
VS2015で新しい接続を追加しようとしていました。ここでの提案はどれもうまくいきませんでした。特にSSMSがうまく接続できたので、ウィザードのある種のバグを疑って、私はそれを試してトリックすることにしました。出来た!
接続を追加する代わりに、「新しいSQL Serverデータベースを作成する」を使用してください。サーバー名と新しいDBのランダムな名前を入力してください。 "テスト"。
これが成功したと仮定して、VSでServer Explorerを開き、Data Connectionsで接続を見つけ、それを右クリックしてModify Connectionを選択します。
(手順1の) "test"を、接続したい既存のデータベースの名前に変更します。 [接続テスト]をクリックします。今度はうまくいくはずです。
手順1で作成した一時データベースを削除します。
MSSQLSERVERサービスを再起動しようとしても機能しなかった場合、これが解決策である可能性があります。
SQLExpressを使用している場合、サーバー名は次のComputerName\SQLExpressである必要があります。ただし、SQLDeveloperの場合、ComputerNameの後にSQLDeveloperを修正する必要はありません。
ここに記載されている 手順をすべて実行しても 、それでも接続できない場合は、etcフォルダーのhostsファイルにIPアドレスを含むDNSを追加してみてください。接続文字列にDNS名の代わりにIPアドレスを追加することは、接続が実際に機能するかどうかを確認するための一時的な解決策であるはずです。
sQLリモート接続用にサーバーのポート番号1433を開く
パブリックIPアドレスと同様にローカルIPアドレスを使って接続しようとしました。私はもう試した:
はい、サイトはサーバーと通信できます。名前付きパイプ/ TCPは有効です。リモート接続は許可されています。 Windowsファイアウォールがオフです。Windowsファイアウォールのポート1433で例外が発生しました。 SQL Server構成マネージャですべてを有効にしました。
私は確実にして、同様に上記をしました、そして、私はちょうどダブルバックスラッシュを共有したいです
oBuilder.DataSource = "SPECIFICPCNAME\SQLEXPRESS";
SINGLE BACKSLASHを使用すると、ビルドエラーが発生しました。すなわち、エラー1認識されないエスケープシーケンス
私はこれが次の人に役立つことを願っています - 私は夕食を犠牲にしました、真夜中の軽食およびNBAはこれを解決する時間を強調します(恥)
[Tamizh venthan]に感謝します^ _ ^