رفع خطای Cannot Connect to SQL Server در SSMS
خطای «Cannot connect to [نام سرور]» در SSMS، برخلاف خطای Login Failed، معمولاً به معنای این است که SSMS اصلاً نتوانسته به موتور SQL Server وصل شود — یعنی مشکل قبل از مرحلهی احراز هویت رخ میدهد. علتهای آن معمولاً یکی از این چهار مورد است: سرویس اجرا نیست، نام سرور اشتباه است، اتصال از راه دور غیرفعال است، یا فایروال جلوی پورت را گرفته.
A network-related or instance-specific error occurred است، راهنمای اختصاصی رفع این خطای شبکهای را هم ببین — همان ریشه دارد اما جزئیات بیشتری پوشش میدهد.مرحله ۱ — مطمئن شو سرویس SQL Server در حال اجراست
سادهترین و رایجترین علت است. سرویس را از SQL Server Configuration Manager بررسی کن:
اگر وضعیت Stopped بود، روی سرویس راستکلیک کن و Start را بزن. اگر سرویس مدام خاموش میشود، Event Viewer ویندوز را برای دلیل توقف بررسی کن.
مرحله ۲ — نام سرور را درست وارد کن
یکی از رایجترین اشتباهات، فراموشکردن نام Instance در فیلد Server name است. اگر SQL Server را با یک نمونهی نامگذاریشده (Named Instance) نصب کرده باشی (مثلاً نسخهی Express)، باید از فرمت زیر استفاده کنی:
| حالت | مقدار فیلد Server name |
|---|---|
| Default Instance روی سیستم محلی | localhost یا . یا (local) |
| Named Instance محلی (مثلاً Express) | localhost\SQLEXPRESS |
| سرور روی شبکه با پورت پیشفرض | 192.168.1.10 یا نام کامپیوتر |
| سرور روی شبکه با پورت سفارشی | 192.168.1.10,1433 |
مرحله ۳ — فعال بودن Remote Connections (برای اتصال از سیستم دیگر)
اگر میخواهی از یک کامپیوتر دیگر به SQL Server وصل شوی، باید اتصال از راه دور فعال باشد. در SSMS روی سرور راستکلیک کن → Properties → Connections و مطمئن شو تیک Allow remote connections to this server فعال است.
مرحله ۴ — فعال بودن پروتکل TCP/IP
در SQL Server Configuration Manager → SQL Server Network Configuration → Protocols، پروتکل TCP/IP باید Enabled باشد. بعد از فعالکردنش، سرویس SQL Server را ریاستارت کن.
مرحله ۵ — بررسی فایروال
اگر همهی موارد بالا درست بودند اما همچنان از سیستم دیگری نمیتوانی وصل شوی، احتمالاً فایروال ویندوز پورت SQL Server (پیشفرض 1433) را میبندد. یک قانون Inbound برای این پورت در Windows Defender Firewall اضافه کن، یا موقتاً فایروال را برای تست خاموش کن.
چکلیست سریع
| بررسی کن | ابزار |
|---|---|
| سرویس SQL Server در حال اجراست؟ | SQL Server Configuration Manager |
| نام سرور/Instance درست وارد شده؟ | فیلد Server name در SSMS |
| Remote Connections فعال است؟ | Server Properties → Connections |
| پروتکل TCP/IP فعال است؟ | SQL Server Network Configuration |
| فایروال پورت 1433 را باز گذاشته؟ | Windows Defender Firewall |
جمعبندی
خطای Cannot Connect تقریباً همیشه یک مشکل شبکه یا پیکربندی است، نه مشکل رمز عبور. با بررسی بهترتیب سرویس، نام سرور، تنظیمات Remote Connection، پروتکل TCP/IP و فایروال، در اکثر موارد مشکل رفع میشود. اگر بعد از این مراحل همچنان با پیام A network-related or instance-specific error occurred روبهرو هستی، راهنمای اختصاصی آن را ببین: رفع خطای A network-related or instance-specific error occurred.
سوالات متداول دربارهی این موضوع
اولین چیزی که برای خطای اتصال باید بررسی کنم چیست؟
اجرا بودن سرویس SQL Server در services.msc و درستبودن نام سرور/Instance. بسیاری از خطاها از همین دو مورد است.
برای اتصال از راه دور چه تنظیماتی لازم است؟
فعال بودن Allow remote connections، فعال بودن TCP/IP در Configuration Manager، باز بودن پورت (پیشفرض TCP 1433) در فایروال و در حالت Named Instance، اجرای سرویس SQL Server Browser.
تفاوت localhost، نقطه (.) و (local) چیست؟
هر سه به سرور محلی اشاره میکنند. اگر Instance نامدار است (مثل SQLEXPRESS) باید نام کامل را بنویسی، مثلاً .\SQLEXPRESS.
میخوای SQL Server را از پایه یاد بگیری؟
دورهی رایگان SQLFarsi را با درس معماری SQL Server شروع کن.
شروع یادگیری