2012-08-28 16 views
12

Windows 7でSQL Server 2012 Management Studio Expressを実行していますが、ローカルデータベースに接続する際に問題が発生しています。私は上記のすべてのソリューションを試して、didntの仕事。助けてください。前もって感謝します。Windows 7のSQL Server管理スタジオのローカルデータベース接続エラー

インストールURLはhereです。

error- A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified) (Microsoft SQL Server, Error: -1)

MSDN linkを参照してください。 SQL Serverをインストールし、名前付きインスタンスのSQLEXPRESSを使用と仮定

+0

接続文字列には何がありますか?エラーは、そこに無効なデータソース要素がある可能性が高いことを示しています。 –

答えて

21

、サーバー名は次のようになります。

.\SQLEXPRESS 

または:

127.0.0.1\SQLEXPRESS 

あなたは(それができない場合があり、インスタンス名を確認することができますSQLEXPRESS )、そしてこれと非常に似たパスでサーバーがスタートメニューで実行されていることを確認してください(バージョンによって異なります)。

Start > Programs > Microsoft SQL Server > Configuration Tools >
   SQL Server Configuration Manager

それが現在停止している場合は、右クリックする必要があり、開始]を選択します:

enter image description here

あなたはまた、右クリックして、起動モードが自動に設定されていることを確認する必要があります(これは[プロパティ]> [サービスの下にあります) 。

エラーメッセージは、サーバーが名前付きパイプを使用しようとしていることを示しているようです。ローカルでは共有メモリを使用できるはずですが、次にSQL Server Browserサービスが実行されていることを確認する必要があります。それは始まっていない場合は

Control Panel > Administrative Tools > Services

enter image description here

、それを開始し、自動にそのスタートモードを設定します。あなたにはそれを行うことができます。 (上記のように、右クリックメニューからこれらの両方を行うことができます)

まだどこにでもいない場合は、手動でWindowsアカウントを管理者のグループに追加することなくSQL Server 2012をインストールすることができます。このような場合は、混合モードを使用するように設定してsaとして接続してください。そうしないと、NT AUTHORITY \ SYSTEMとしてSSMSを実行するためにPSExec.exeのようなツールを使用する必要があります:あなたはSAとして接続することができますまたはあなたがPsExecはを使用して接続する必要が

PsExec -s -i "C:\...path to ssms...\Ssms.exe" 

かどうかは、次の手順は次のとおりです。

  1. Windowsアカウントがサーバー>セキュリティ>ログインのログインであることを確認してください。存在しない場合は、[ログイン]> [新規ログイン]を右クリックして追加します。
  2. loginがsysadmin固定サーバーロールのメンバーであることを確認してください。そうでない場合は、[サーバーの役割]タブの下にあることを確認してください。
+0

素晴らしい! Save a Dayに感謝します。 :) –

+0

そして、localDBに接続する場合は、 '(LocalDb)\ v11.0'をサーバ名テキストボックスに入力してください。 – Moshii

11

名前付きパイプを使用してSSMSをLocalDBインスタンスに接続できます。

1 - 次のコマンドを実行して(localdb)インスタンスのアドレスを取得します: "C:\ Program Files \ MicrosoftのSQLサーバ\ 110 \ツール\ Binnの\ SqlLocalDB.exe" インフォ[InstanceNameは] (あなたが興味を持っているデフォルトのインスタンス場合は、[InstanceNameは] あなたはコマンドでファイルのテキストにCMDでそれを書くことができるようv11.0を指定:

"C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SqlLocalDB.exe" info v11.0 > C:\db_details.txt 

2 - 「インスタンスをコピーしますパイプ名 "値、例えばnp:\。\ pipe \ LOCALDB#1E0FF40B \ tsq l \ query

3 - サーバー名として「インスタンスパイプ名」の値を貼り付けます。

+0

動作しません。名前付きパイプに接続するときにも同じエラーメッセージが表示されます。 – ygoe

+0

名前付きパイプが有効になっていることを確認してください - https://www.blackbaud.com/files/support/infinityinstaller/content/installermaster/tkenablenamedpipesandtcpipconnections.htm –

+0

大変です。名前付きパイプを有効にしたので、誰も私がそれを行う必要があるとは言いませんでした。 'sqllocaldb info'は、名前付きパイプインスタンスの空の値を返します。それは何かをする必要があるようになりました。まだ機能していません。私はSQL Expressにとどまると思う。またはPostgreSQL/MySQLの場合は本当にコンパクトでなければなりません。 – ygoe

0

このコードを試してみてください。

RegistryKey rKey; 
string InstanceName; 

//use this string for database connection 
string ConString; 
string regPath = @"Software\Microsoft\Microsoft SQL Server\UserInstances"; 
rKey = Registry.CurrentUser.OpenSubKey(regPath); 

if (rKey.GetSubKeyNames().Length != 0) 
{ 
    regPath += @"\" + rKey.GetSubKeyNames()[0]; 
    rKey = Registry.CurrentUser.OpenSubKey(regPath); 
    InstanceName = rKey.GetValue("InstanceName").ToString(); 
    ConString = @"Server=np:\\.\pipe\" + InstanceName + 
     @"\tsql\query;Initial Catalog=RahBord;Trusted_Connection=True"; 
} 
else 
{ 
    Process.Start(@"C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SqlLocalDB.exe", "c amirLOCALDB -s"); 
    regPath += @"\" + rKey.GetSubKeyNames()[0]; 
    rKey = Registry.CurrentUser.OpenSubKey(regPath); 
    InstanceName = rKey.GetValue("InstanceName").ToString(); 
    ConString = @"Server=np:\\.\pipe\" + InstanceName + @"\tsql\query;Initial Catalog=RahBord;Trusted_Connection=True"; 
} 

あなたのインスタンスは、このアドレスに移動停止した場合:

C:\Program Files\Microsoft SQL Server\110\Tools\Binn\ 

SqlLocalDB.exe s yourInstance 
0

このコマンドを使用するには、あなたは、TCPプロトコルであることを確認しました特定のサーバーで有効になっています。次の手順に従って、有効になっていることを確認します。

http://msdn.microsoft.com/en-us/library/bb909712(v=vs.90).aspx

あなたがそれらを有効にした後、あなたは、サービスを再起動する必要があります。起動に失敗した場合は、イベントログでその理由を確認してください。一般的な原因は、そのポートですでに実行されている別のサービス(通常は別のバージョンのSQL Server)があることです。その場合は、サーバーポートを再設定する必要があります。このブログの記事をチェックします(また、TCP/IPをチェックするためにどのように画像が含まれて有効):

http://blogs.msdn.com/b/sqlblog/archive/2009/07/17/how-to-configure-sql-server-to-listen-on-different-ports-on-different-ip-addresses.aspx

をいつも次の障壁が接続をブロックするファイアウォールまたはインターネットセキュリティソフトウェアであることの後。これはローカルのインスタンスでも私に起こっています。それを並べ替えると、あなたは行かなくてはなりません。

これでも接続できない場合は、理由のためにイベントログを検索してください。

0
  1. オープンタスクマネージャプロセス]タブの下のSqlservr.exe見つける
  2. カラムが表示されていない場合は、[表示]> [カラムの選択]> [スクロールダウン]を選択して[OK]をクリックします。
  3. "C:¥Program Files¥Microsoft SQL¥110¥LocalDB¥Binn¥ sqlservr.exe "-c SMSSQL11Eです。LOCALDB -s LOCALDB#C1E849D0
  4. オープンSQL管理スタジオ(runasコマンド管理者)のLOCALDB#C1E849D0 --etc
  5. テイク・ノートでは、[サーバー名を入力します。\\。\パイプ** LOCALDB#C1E849D0 ** \ tsql \ query LOCALDB内のすべてのデータベースを参照できるようにする必要があります
関連する問題