web-dev-qa-db-ja.com

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

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

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 error

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

63
Iter Ator

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

したがって、答えは次のとおりです。WindowsからSQL認証に切り替える

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

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

51
Iter Ator

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

enable sa admin

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

48
nzchris

また、サービスにアクセスしてSqlサーバーインスタンスを再起動することもできます enter image description here

13
No Name

これも確認してください enter image description here 設定TCP/IP、名前Pipelineおよび共有メモリもチェックイン可能

8
Muhammad Bilal

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に設定します

enter image description here

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

また、TCP/IP接続を強制すると(localhostまたは127.0.0.1の代わりに.を提供することにより)、エラーの本当の理由を明らかにすることができます。私の場合、接続文字列で指定されたデータベース名が正しくありませんでした。

したがって、チェックリストは次のとおりです。

  • 構成マネージャーでNamed Pipeが有効になっていることを確認します(サーバーの再起動を忘れないでください)。
  • 接続するデータベースが存在することを確認してください。
  • SQL Server Authentication(またはMixed Mode)が有効になっていることを確認してください。
6

私はこの問題に二度直面し、以前の回答はすべて失敗しました。幸いなことに、次のリクエストが仕事をします

Alter login [user] with CHECK_POLICY = OFF
go

Alter login [user] with CHECK_POLICY = ON
go
4
Groco

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

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

シンプルで、少し気が抜けたように感じますが、それは私にとっての答えでした。

3
Joe Walters

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

2
Bence Végert

「サーバーとの接続は正常に確立されましたが、ログインプロセス中にエラーが発生しました。(プロバイダー:共有メモリプロバイダー、エラー: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;

出来た。

2
Doan bien

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

0
cschaefer

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

0
elkoo