Impossible de se connecter à SQL Server en mode mono-utilisateur

9

J'ai essayé toutes sortes de combinaisons différentes d'indicateurs de démarrage pour SQL Server 2008 R2 Express et je ne peux pas surmonter cette erreur:

La connexion a échoué pour l'utilisateur «LOCALSERVER \ Administrateur». Raison: le serveur est en mode mono-utilisateur. Un seul administrateur peut se connecter à ce moment. (Microsoft SQL Server, erreur: 18461)

J'ai essayé de le démarrer en mode mono-utilisateur par les deux -m"SQLCMD"et -m"sqlcmd"et Iv'e a même essayé de le démarrer avec -m"Microsoft SQL Server Management Studio - Query"et de me connecter avec les clients appropriés. J'obtiens TOUJOURS cette erreur. Je suis sûr à 99% que rien d'autre ne vole ma connexion et lorsque je me connecte avec SSMS, je m'assure de faire la méthode "new query-connect" pour m'assurer qu'elle n'utilise qu'une seule connexion.

Quelqu'un d'autre a-t-il eu ce problème? Comment puis-je le réparer et me connecter?

Earlz
la source

Réponses:

16

Voici une solution que je viens de trouver à ce vieux problème:

  1. Arrêtez tous les services SQL
  2. Commencez par -m
  3. Exécutez MSSQL Management Studio en tant qu'administrateur

Si ce n'est pas commencé en tant qu'administrateur (comme je ne l'étais pas), vous recevrez le générique qu'un administrateur est déjà connecté. Au lieu de dire que vous ne pouvez pas vous connecter car vous n'êtes pas administrateur.

Une autre erreur déroutante de Microsoft. Je suppose que le même problème existera également avec sqlcmd

Cordialement

Liam

Liam Wheldon
la source
3
L'exécution de SSMS en tant qu'administrateur est un point assez important. Ça ne fonctionnait pas pour moi sans ça.
MrEdmundo
Ugg, cette course en tant qu'administrateur est pénible. je n'ai même pas eu à passer en mode -m.
Omzig
8

Bien que Microsoft dise le contraire, vous ne devez pas citer après le -m. Donc, pour SQLCMD, vous le feriez -mSQLCMD. Je n'ai vu cela dit nulle part, alors je vais le documenter ici. Si rien d'autre ne fonctionne, essayez de ne pas le citer.

Earlz
la source
1
C'était absolument 100% le problème que j'avais. sqlcmd a fonctionné immédiatement après cela.
hlmtre
@Earlz: Le fait de ne pas supprimer les guillemets était aussi absolument, exactement, entièrement mon problème. (Et cela m'a probablement sauvé toute une journée de travail - merci!)
techvslife
2

Il ne devrait rien y avoir après -m. La syntaxe devrait ressembler à:

sqlservr.exe -c -f -m 

Vous vous connectez ensuite à l'instance à l'aide de sqlcmd et apportez les modifications nécessaires. Si vous essayez d'utiliser SQL Server Management Studio pour vous connecter, vous ne pourrez pas le faire car SSMS nécessite plusieurs connexions pour se connecter.

mrdenny
la source
-m peut éventuellement être suffixé par un "nom de client", dans mon cas, j'avais besoin qu'il soit sqlcmd parce que d'autres choses essaient de se connecter et de voler ma connexion.
Earlz
Merci, c'était la bonne réponse pour moi avec SQL Server 2012. Arrêtez / désactivez les autres services SQL et exécutez SSMS en tant qu'administrateur.
Noah Stahl
0

Je viens d'avoir ce problème exact et tout ce que je devais faire était:

  • Arrêtez le service SQL principal pour mon instance.
  • Commencez.

J'ai reconnecté le navigateur SQL et cela a de nouveau fonctionné. Ainsi, au lieu d'essayer toutes les étapes supplémentaires, les gens devraient vraiment essayer l'approche la plus simple qui fonctionne en premier avant de passer à des tentatives plus approfondies.

Katastic Voyage
la source
-3

Changer le contrôle de compte d'utilisateur pour ne jamais avertir a résolu le problème pour moi

Gerhard Powell
la source
Pourquoi les downvotes, quand c'est une solution qui marche?
Gerhard Powell
Les personnes qui votent en aval devraient expliquer pourquoi ce n'est pas une bonne réponse. Sinon, le downvote est inutile comme mauvaise réponse.
K_Rol