Je ne peux pas me connecter à mon serveur SQL Server 2008 local?

18

Je viens d'installer SQL Server 2008 et je ne peux pas me connecter avec SQL Server Management Studio. Mon intention est de simplement laisser mon utilisateur Windows local s'authentifier mais je ne sais pas trop comment faire .

Dans la boîte de dialogue de connexion que j'écris:

Server type: Database Engine
Server name: (local)
Authentication: Windows Authentication

Ma première question serait de savoir si c'est à cela que je dois me connecter? Lorsque j'essaie de me connecter, j'obtiens ce message d'erreur:

TITLE: Connect to Server
------------------------------

Cannot connect to (local).

------------------------------
ADDITIONAL INFORMATION:

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: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
(Microsoft SQL Server, Error: 2)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=2&LinkId=20476

------------------------------
BUTTONS:

OK
------------------------------

Je suis allé à l'URL affichée et elle dit simplement "assurez-vous que le serveur SQL est en cours d'exécution". Je pense que oui, mais je n'en suis pas totalement sûr.

J'ai désactivé le pare-feu Windows (il s'agit de Windows 7 7100 x86). J'ai également changé le système de connexion dans le Gestionnaire de configuration SQL Server, mais il ne semble pas que ce soit un problème de connexion, mais je ne peux même pas y ouvrir le socket. Sur ce même outil, j'ai activé tous les protocoles sur "Configuration réseau SQL Server" -> "Protocoles pour SQLEXPRESS" sans succès. Je manque d'idées. Que puis-je essayer d'autre?

pupeno
la source
On dirait que la vraie réponse ici était l'instance nommée. . \ SqlExpress dot signifie localhost et \ SqlExpress est l'instance à laquelle vous souhaitez vous connecter. Pour ceux qui ne le savent pas, vous pouvez avoir plusieurs serveurs SQL Server sur une machine. SqlExpress dans ce cas, est juste le nom, plutôt qu'une indication stricte du type ou une version stricte du produit.
p.campbell

Réponses:

23

Ok, pouvez-vous ouvrir votre console de services et faire défiler vers le bas jusqu'à S pour SQL Server. Vous devriez maintenant voir les services. Veuillez vous assurer que SQL Server (SQLEXPRESS) est en cours d'exécution, puis essayez. \ SQLEXPRESS au lieu de (local).

Donc, selon votre exemple:

Server type: Database Engine
Server name: .\SQLEXPRESS
Authentication: Windows Authentication

J'espère que cela t'aides

Mise à jour: ces instructions sont parce que je suppose que vous exécutez l'édition Express et non l'édition Dev / Std / Ent de SQL Server


Essayez de vous assurer que les protocoles appropriés sont activés:

  1. Démarrez le Gestionnaire de configuration SQL (par exemple: Démarrer-> Programmes-> SQL Server-> Outils de configuration)
  2. Développez la configuration du client natif SQL
  3. Cliquez sur Protocoles client (vous pouvez avoir un 32 bits et un 64 bits, appliquer aux deux)
  4. Assurez-vous que la mémoire partagée, TCP / IP et les canaux nommés sont activés dans cet ordre
  5. Développer la configuration réseau de SQL Server
  6. Assurez-vous que la mémoire partagée pour SQLEXPRESS et / ou MSSQLSERVER est activée
  7. Cliquez sur SQL Server Services
  8. Redémarrez tous les services en cours d'exécution

Vous devriez maintenant pouvoir vous connecter à l'instance


Si vous constatez que vous ne pouvez pas vous connecter du tout, vous devrez peut-être suivre ces instructions pour mettre SQL Server en mode mono-utilisateur. Voir ici pour les instructions complètes de Microsoft.

Par défaut, sqlservr.exe se trouve dans C: \ Program Files \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ Binn. Si une deuxième instance de SQL Server est installée, une deuxième copie de sqlservr.exe se trouve dans un répertoire tel que

C: \ Program Files \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ binn.

Vous pouvez démarrer une instance de SQL Server à l'aide de sqlservr.exe à partir d'une autre instance, mais SQL Server démarrera également la version de l'instance incorrecte, y compris les service packs, ce qui peut conduire à des résultats inattendus.

Pour éviter cela, utilisez la commande MS-DOS change directory (cd) pour vous déplacer vers le répertoire approprié avant de démarrer sqlservr.exe, comme indiqué dans l'exemple suivant.

cd \ Program Files \ Microsoft SQL Server \ MSSQL10_50.1 \ MSSQL \ Binn

Pour démarrer l'instance par défaut de SQL Server en mode mono-utilisateur à partir d'une invite de commandes

À partir d'une invite de commande, entrez la commande suivante:

sqlservr.exe -m

Le mode mono-utilisateur peut être utile pour effectuer une maintenance d'urgence lorsque vous ne souhaitez pas que d'autres utilisateurs se connectent à SQL Server, mais tout utilisateur peut devenir l'utilisateur unique, y compris le service SQL Server Agent.

Vous devriez maintenant pouvoir vous connecter à l'instance et vous ajouter à l'onglet de sécurité et accorder un accès complet.

Autre méthode:

Il y a un script ici que les revendications pour ajouter l'utilisateur actuel au rôle sysadmin SQL Server. Cela peut fonctionner en mode mono-utilisateur mais je ne l'ai pas vérifié

Wayne
la source
La console des services est-elle l'onglet Services du Gestionnaire des tâches de Windows? (Win7). Quoi qu'il en soit, SQLEXPRESS n'est pas là, comment le faire fonctionner?
pupeno
1
La console de service est démarrer-> panneau de configuration-> outils d'administration-> services
Wayne
Peu importe, j'ai trouvé la console Services, SQLEXPRESS est en cours d'exécution.
pupeno
La connexion à. \ SQLEXPRESS a fait l'affaire. Merci beaucoup Wayne!
pupeno
1
Merci beaucoup ... devenait fou en essayant de comprendre cela! (Remarque pour les autres dans ". \ SQLEXPRESS" ... "SQLEXPRESS" est l'ID d'instance que vous avez donné au serveur lors de l'installation.
RiddlerDev
0

(local) se résout en 127.0.0.1 et ne fonctionne que pour les valeurs par défaut. Les instances, comme la valeur par défaut pour SQL Server Express, ont besoin d'un vrai nom. Notez que vous pouvez consulter le journal des erreurs pour SQL Server (dossier d'installation SQL, puis journal) et l'une des premières entrées vous donnera l'IP, le port et le nom de l'instance.

Vous pouvez donc les utiliser à la place. Les noms d'instance sont bons à utiliser, car ils sont assez cohérents. Notez qu'ils utilisent également des ports dynamiques, il peut donc s'agir d'un port différent à chaque redémarrage. Le gestionnaire de configuration SQL Server peut définir un port spécifique. pas sûr des outils Express.

Steve Jones
la source