SQL Server Express 2012/2016のlocalhostに接続できません


97

SQL Express 2012の最新バージョンをダウンロードしましたが、localhostに接続できません。localhost \ SQLExpressおよびWindows認証を試しましたが、接続できませんというエラーメッセージが表示されます。ここで何か不足していますか?以前にSQL Server 2008を使用したことがあり、localhostへの接続に問題が発生したことはありません。見つからないようです。また、サービスにはSQL Server VSS Writerしか表示されません。これは本来あるべき姿ですか?それとも何か不足していますか?ありがとう


1
インストールがうまくいかなかったようです。修復/再インストールしてみましたか?
Vikdor 2012年

1
たとえば、Management Studioインストーラーではなく、サーバーのインストーラーを見つけましたか?
Damien_The_Unbeliever

回答:


181

Aaron Bertandによると

  1. SQL Serverサービスが実行されていることを確認する必要があります。これを行うにStart > Control Panel > Administrative Tools > Servicesは、に移動し、サービスSQL Server(SQLEXPRESS)が実行されていることを確認します。そうでない場合は、起動します。

  2. サービスアプレットを使用しているときに、サービスSQL Browserが起動していることも確認してください。そうでない場合は、開始します。

  3. SQL ServerがTCP / IPまたは名前付きパイプの使用を許可されていることを確認する必要があります。Start > Programs > Microsoft SQL Server 2012 > Configuration Tools(またはSQL Server Configuration Manager)でSQL Server構成マネージャーを開いてこれらをオンにし、TCP / IPと名前付きパイプが有効になっていることを確認します。スタートメニューにSQL Server構成マネージャーが見つからない場合は、MMCスナップインを手動で起動できます。ご使用のバージョンに応じて、SQL Server構成マネージャーでスナップインへのパスを確認します

    SQL Server構成マネージャー

  4. SQL Serverの接続認証モードが接続文字列と一致することを確認します。

    • ユーザー名とパスワードを使用して接続している場合は、「SQL Server認証モード」を受け入れるようにSQL Serverを構成する必要があります。

      -- YOU MUST RESTART YOUR SQL SERVER AFTER RUNNING THIS!
      USE [master]
      GO
      DECLARE @SqlServerAndWindowsAuthenticationMode INT = 2;
      EXEC xp_instance_regwrite
        N'HKEY_LOCAL_MACHINE',
        N'Software\Microsoft\MSSQLServer\MSSQLServer',
        N'LoginMode',
        REG_DWORD,
        @SqlServerAndWindowsAuthenticationMode;
      GO
    • "Integrated Security = true"(Windowsモード)を使用して接続していて、このエラーが発生するのはWebアプリケーションでデバッグする場合のみである場合、ApplicationPoolIdentityをSQL Serverログインとして追加する必要があります
  5. それ以外のStart -> Run -> Services.msc場合は、実行します。

実行されていない場合

すべてがインストールされていないようです。インストールファイルを起動し、「新規インストールまたは既存のインストールに機能を追加する」オプションを選択します。そこから、データベースエンジンサービスがインストールされていることを確認できます。


2
@dido:Start-> Run-> Services.msc
Ravindra Bagale 2012年

3
確認するもう1つのことは、インスタンス名です。SQL Serverのインストール方法に応じて、ホストの後にインスタンス名を指定する必要がある場合とない場合があります。
Arvo Bowen

最初にインストールした後、「TCP / IPと名前付きパイプが有効になっている」が必要と思われる
James A Mohler '18 / 02/18

3
それは愚かでしたが、私にとっては、インストールで設定された「localhost \ SQLEXPRESS01」ではなくサーバー名として「localhost」を使用することが問題でした
Guy s

1
私の場合、SQLBrowserが無効になっていて、構成ツールがsql toolsフォルダーにリストされていませんでした。cmd を介して構成ツールを開始するにはhttps://docs.microsoft.com/en-us/sql/relational-databases/sql-server-configuration-manager?view=sql-server-2017構成が自動的にSQLBrowserを開始するにはツールが失敗する/programming/21375014/i-cannot-start-sql-server-browser
steven87vt

121

[スタート]-> [プログラム]-> [Microsoft SQL ServerYYYY]-> [構成ツール]-> [SQL Server YYYY構成マネージャー]に移動するか、「SQLServerManager12.msc」を実行します。

クライアントプロトコルでTCP / IPが有効になっていることを確認します。

次に、「SQL Serverネットワーク構成」に移動し、TCP / IPをダブルクリックします。[IPアドレス]タブをクリックして、一番下までスクロールします。[IP All]でTCP動的ポートが存在する場合は削除し、TCPポートを1433に設定します。[OK]をクリックし、[SQL Server Services]に戻ってSQL Serverインスタンスを再起動します。これで、少なくとも私はローカルホスト経由で接続できます。

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

もちろん、このエラーは他のアプリケーションから接続するときにも発生する可能性があることに注意してください。通常のC#WebアプリケーションWeb.config接続文字列の例:

<connectionStrings>
    <add name="DefaultConnection" connectionString="server=localhost;database=myDb;uid=myUser;password=myPass;" />
</connectionStrings>

4
最後に、これは私のために働きました!IP1、IP2などでポートを変更しましたが、IPAllでは変更していません。ありがとうございます!
ジョージ

2
@Georgeはあなたとまったく同じです。ファイアウォールを無効にしていても、何も機能しませんでした。TCP動的ポートに40xxxポートがありました。私はそれを削除し、IPAllのTCPポートに1433を入れました。これも同様に行いました。ありがとう!
Alisson

これも私にとって鍵でした。
Erik Olson

1
何時間も頭を壁に叩きつけた後、ようやくうまくいきました。ありがとうございました。
トップキャット

素晴らしいソリューション。それは私の日を救います。本当にありがとう!
Lavande

13

SQL SERVER EXPRESS 2012では、「(localdb)\ MSSQLLocalDB」をデータソース名として使用する必要があります。たとえば、次のような接続文字列を使用できます。

Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=master;Integrated Security=True;

10

私は同様の問題を抱えていました-多分私の解決策が役に立ちます。MSSQL EX 2012(デフォルトのインストール)をインストールし、VS2012 EXに接続しようとしました。喜びがない。次に、サービスを確認し、SQL Server(SQLEXPRESS)が実際に実行されていることを確認しました。

しかし、無効になっているSQL Server Browserと呼ばれる別の興味深いサービスを見ました。有効にして起動し、VS2012 EXの新しい接続でサーバー名を取得して接続することができました。

彼らがVSの接続に必要なサービスを無効にするのは奇妙です。


接続する必要はありません。無効にしていて、正常に接続できます。接続先の正確なホスト/インスタンス名がわからない場合に、他のソフトウェアからクエリできるようになるため、簡単になります。
Simon Morgan

8

まず、Ravindra Bagaleが提供する最も一般的なソリューションを試してください。

localhostからデータベースへの接続が次のようなエラーで失敗する場合:

SQL Server DBに接続できません。エラー:ホスト[IPアドレス]、ポート1433へのTCP / IP接続に失敗しました。エラー:「接続が拒否されました:接続。接続プロパティを確認してください。SQLServerのインスタンスがホスト上で実行されていて、ポートでTCP / IP接続を受け入れていることを確認してください。ポートへのTCP接続がファイアウォールによってブロックされていないことを確認してください」

  1. SQL Server構成マネージャーを開きます。
  2. 問題のサーバーインスタンスのSQL Serverネットワーク構成を展開します。
  3. 「TCP / IP」をダブルクリックします。
  4. [プロトコル]セクションで、[有効]を[はい]に設定します。
  5. [IPアドレス]セクションの[IPすべて]でTCPポートを設定します(デフォルトでは1433)。
  6. [IPアドレス]セクションで、IPアドレス127.0.0.1(IPv4の場合)および:: 1(IPv6の場合)のサブセクションを見つけ、[有効]と[アクティブ]の両方を[はい]に設定し、TCPポートを1433に設定します。

    TCP / IPプロパティ

  7. に移動しStart > Control Panel > Administrative Tools > Services、SQL Serverサービスを再起動します(SQLEXPRESS)。


ここに行く前に、上記の他の解決策を試しました。これで直ってくれた!また、pspingと呼ばれるものをダウンロードすると、接続のテストに役立つことがわかりました。例:psping 127.0.0.1:1433
JMI MADISON

7

まず、SQL Serverサービスが実行中または停止していることを確認します。停止している場合は、開始するだけです。以下の手順に従ってください。

1.スタート->実行-> Services.msc

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

  1. サービスパネルの[標準]タブに移動し、SQlサーバー(SQL2014)を検索します

"SQL2014"は私から与えられたもので、あなたの場合は別の名前かもしれません

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

SQLサービスを開始すると、ローカルデータベースに接続できるようになります。

それが誰かを助けることを願っています。


4

すべてのサービスが期待どおりに実行されていましたが、それでも接続できませんでした。

SQL Server ExpressプロトコルのSQL Server構成マネージャーのTCP / IPプロパティセクションを更新し、IPALLポートを1433に設定して、サーバーに期待どおりに接続する必要がありました。

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


3

Windows認証から混合モードに変更してみてください


1

これは奇妙なことですが、同様の問題があります。ツールを含むSQL 2012 Expressのパッケージをダウンロードしましたが、データベースエンジンがインストールされていません。

MSサイトからもう1つをアンロードし、これはデータベースエンジンをインストールしました。再起動後、サービスがリストされ、準備が整いました。


1

私の状況

  • SQL Server Management Studioで空のインスタンス名>データベースエンジンを選択>右マウスボタン>プロパティ(サーバープロパティ)>リンクビュー接続プロパティ>製品>インスタンス名が空

  • データソース=。\ SQLEXPRESSが機能しません=> web.configでlocalhostを使用します(以下を参照)

解決策:web.config

xxxxxx = .mdfなしの私のデータベースの名前yyyyyy = VS2012データベースエクスプローラーの私のデータベースの名前

接続文字列のサーバー名にtcp:をプレフィックスするか、localhostを使用することにより、共有メモリの代わりにTCPを強制的に使用できます。

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring%28v=vs.110%29.aspx


1

同じ問題があり、SQL 2012の更新プログラムをインストールした後にこれが発生していることがわかりました。問題を修正したのは、プログラムと機能を修正し、修復を実行していたためです。


1

私にとっての問題は、私が指定していないこと.\でした。インスタンスの名前のみを指定していました:

  • 動作しませんでした: SQL2016
  • 働いた: .\SQL2016

1

@ Ravindra Bagaleが言及した手順を実行した後、この手順を試してください。 Server name: localhost\{Instance name you were gave}

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


0

サービスを所有するユーザーをローカルシステムに変更するか、管理者アカウントを使用してみてください。

サービスの下で、サービスSQL Server(MSSQLSERVER)ログオンをNT Service \ Sql ...からローカルシステムに変更しました。サービスを右クリックして[ログオン]タブに移動し、ラジオボタン[ローカルシステムアカウント]を選択します。また、適切であれば、別のユーザーに強制的に実行させることもできます。

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