パイプの反対側にプロセスはありません(SQL Server 2012)


92

私はこのエラーを持っています:

A connection was successfully established with the server, but then an error occurred
during the login process. (provider: Shared Memory Provider, error: 0 - No process is
on the other end of the pipe.)

(Microsoft SQL Server, Error: 233)

このサイトには同様の質問があります。答えは、TCP / IPとパイプを有効にすることです。しかし、私は両方を有効にしましたが、それでも動作しません:

MSSQLエラー

Microsoft SQL Server 2012を使用していますが、ユーザーには完全な権限があります。



これは、サーバー認証からWindows認証に再接続したときに機能しました。
ganji raajkumar 16

1
私のために働いたもの(SQL Express 2016)...混合認証を削除してWindows認証だけを残して、サービスを再起動し、混合認証に戻し、サービスを再起動します。これを行うまで、No processエラーは修正されませんでした
Rostol 2017年

1
その価値については、設定ファイルの接続文字列を確認してください。私にとって、誰かがサーバー名の1つを変更してチェックインしました。私のコードは、サーバーに存在しないデータベースにヒットしようとしました。
camainc

回答:


120

サーバーは、デフォルトではWindows認証のみに設定されていました。エラーの原因がそれであるという通知はなく、それを理解するのは困難です。SQL認証のみでユーザーを作成しても、SQL Management Studioは警告しません。

だから答えは:WindowsからSQL認証に切り替える

  1. サーバー名を右クリックして選択しますproperties
  2. securityタブを選択します。
  3. を有効にしSQL Server and Windows Authentication modeます。
  4. SQL Serverサービスを再起動します。

ログイン/パスワードで接続できます。


5
オプションが正しくチェックされたため、「Windows認証」をチェックし、サービスを再起動してから、「Windows認証+ SQL認証」をチェックして問題を修正しました。とても幸せ!
Groco

2
@Grocoのコメントを明確にするには:Windows Authentication>> を使用してログインします>> Properties>> サーバーを右クリックします>> >> Security(下Select a page)>>下でをServer Authentication選択しますSQL Server and Windows Authentication mode。SQL Server Management Studioを閉じ、SQL Serverサービスを再起動して、再度ログインしてください。
Minh Tran

1
私が抱えていた問題は、Server Authenticationに設定されたことWindows Authentication modeです。そして、正しいパスワード入力に関係なく、私はいつも迎えられましたA connection was successfully established with the server, but then an error occurred during the login process. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.)。エラーが発生している間、私はログインできましたWindows Authentication
Minh Tran

どうもありがとうございます。SQLサービスを再インストールして、問題を解決しました。
user1282609

57

これを解決するには、Windows認証を使用してSQL Management Studioに接続し、サーバーノードの[プロパティ]-> [セキュリティ]を右クリックして、SQLサーバーとWindows認証モードを有効にします。「sa」を使用している場合は、アカウントが有効になっていることを確認してください。これを行うには、ログインの下の「sa」を開き、ステータスを表示します。

sa管理者を有効にする

これが機能しない場合は、SQL Serverを再インストールする必要がある場合があります。


この後、SQL Serverを再起動します。次にログインしよう。
Webucator

25

また、サービスに移動してSQLサーバーインスタンスを再起動することもできますここに画像の説明を入力してください


3
他のすべての修正を試した後、これで私の問題は解決しました。
mini998、2017

ええと、接続できないためにSQLサーバーサービスを再起動すると、接続に成功した他のものが壊れるという大きな警告ラベルが付いているのではないでしょうか。
undrline

これは私にとってはうまくいきました。このソリューションを検討することを人々が無視するのがいかに簡単かを私は見ることができます。
TechnicalTim

17

だから、私は最近、これも統合セキュリティのために、私の問題は実際にはかなり簡単に修正できることがわかりましたが、主に、「Trusted_Connection = True」を追加するのを忘れていたためですに、接続文字列にをです。

それはかなり明白に思えるかもしれませんが、connectionstrings.comから接続文字列の形式をコピーし、接続文字列のその部分が欠落していることに気づくまで、20分ほどかかりました。

シンプルで私は少しぼんやりしていると感じますが、それは私にとっての答えでした。


すべてのコメントを試しましたが、うまくいきませんでした。あなたの解決策は私にとって完璧に働きました。どうもありがとうございました。
Royal.O

これは、TCPをチェックする他のすべてのものが有効になっていて、混合モード認証を追加し、SQLブラウザーサービスを再起動した後で試した最後のことでした。ありがとう
Myke Black

10

このエラーのもう1つの理由は、データベース名が正しくないか、存在しない可能性があります。

TCP / IP接続を強制する(またはの127.0.0.1代わりにlocalhost.)と、エラーの実際の理由が明らかになります。私の場合、接続文字列で指定されたデータベース名が間違っていました。

だから、ここにチェックリストがあります:

  • 名前付きパイプを確認してくださいが構成マネージャーで有効になってします(サーバーを再起動することを忘れないでください)。
  • 接続するデータベースが存在することを確認してください。
  • SQL Server認証(または混合モード)が有効になっていることを確認します

Express 2016で構成マネージャーはどうなりましたか?利用できないのですか?今すぐSQLServerManager13.mscを実行する必要があります
Kirsten Greed

127.0.0.1に変更すると、エラーメッセージが表示されます。メッセージ= SQL Serverへの接続を確立中にネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからなかったか、アクセスできませんでした。インスタンス名が正しいこと、およびSQL Serverがリモート接続を許可するように構成されていることを確認してください。(プロバイダー:SQLネットワークインターフェイス、エラー:26-指定されたサーバー/インスタンスの検索エラー)Source = Core .Net SqlClient Data Provider
Kirsten Greed

1
@kirstengインストールされているSQL Serverインスタンスを確認します。デフォルトのインスタンス(MSSQLSERVER)をインストールしましたか?
Mohammad Dehghan

混合モードのSQL Server認証がそれを行いました。SQL Server Expressの新規インストールを行う場合、プログラミングの必要性に応じてユーザーを追加する場合は、混合モードに変更する必要があります。そうしないと、Windows認証しか利用できません。
エドゥアルド

これは(ちょっと)うまくいきました。localdb nonsenseを127.0.0.1に変更すると、問題は解決しました。
エリック


7

SQL資格情報でログインしようとしている場合は、レジストリでSQL ServerのLoginModeを変更して、SQL ServerとWindows認証の両方を許可することもできます。

  1. regeditを開く
  2. SQLインスタンスキーに移動します(インスタンス名によって異なる場合があります):Computer \ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ MSSQL14.SQLEXPRESS \ MSSQLServer \
  3. LoginModeを2に設定します

ここに画像の説明を入力してください

  1. SQLサービスとSQL Server Management Studioを再起動して、再試行してください。

これが最も適切な答えです。
sushh 2018

5

私はこの問題に2度目に直面し、以前のすべての回答が失敗しました。幸いにも、次のリクエストでうまくいきます。

Alter login [user] with CHECK_POLICY = OFF
go

Alter login [user] with CHECK_POLICY = ON
go

4

私にとっては、ログインユーザーのパスワードの有効期限が切れ、同じ例外が発生しました。次に、Windows認証モードでログインし、関連付けられたユーザーのパスワードを変更すると、問題が解決しました。


あなたは私の日を救います!!
学習者

3

このエラーが発生した場合も、原因は単純ですが、明らかではありませんでした。パスワードが正しくありません。新しくインストールしたSQL 2016サーバーから「ログインに失敗しました」と表示されなかった理由がわかりません。


3

ええ、このエラーは「何かが失敗しました。幸運なことに何が起こっているのかを理解しています」-私の場合、それは間違ったユーザー名でした。SQL Server 2019 RC1。


2

同じ問題があります。「サーバーとの接続は正常に確立されましたが、ログインプロセス中にエラーが発生しました。(プロバイダー:共有メモリプロバイダー、エラー:0-パイプの反対側にプロセスがありません。)」

私の接続は:

server = POS06 \ SQLEXPRESS; AttachDbFilename = C:... \ Datas.mdf; Initial Catalog = Datas; ユーザーID = sa; Pwd = 12345; 接続タイムアウト= 10;

しかし、私のSQLはPOS06 \ MSQL2014です

接続文字列を次のように変更します

server = POS06 \ MSQL2014; AttachDbFilename = C:... \ Datas.mdf; Initial Catalog = Datas; ユーザーID = sa; Pwd = 12345; 接続タイムアウト= 10;

出来た。


0

[セキュリティ]-> [ログイン]でユーザーが指定されていることを確認してください。指定されていない場合は、ユーザーを追加して再試行してください。


0

他の回答に従ってください。それでも機能しない場合は、コンピューターを再起動して、WindowsでSQL Serverサービスを効果的に再起動してください。


通常は、特定のデータベースのSQLサービスを次の場所に配置して再起動することもできますservices.msc
Zimano

0

常にSQL Management Studioでこれらの資格情報を使用してログインしてください。これにより、実行時にコードで取得できない詳細が明らかになる場合があります。SQL + Windows認証をチェックし、サーバーを再起動しましたが、まだ運がありませんでした。SQL管理を使用してログインしようとした後、次のプロンプトが表示されました。

スクリーンショット

ログインは数分前に作成されましたが、どういうわけかパスワードの有効期限が切れていました。とにかく、新しいパスワードセット、接続文字列の更新など、すべて問題ありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.