رفع خطای A network-related or instance-specific error occurred
متن کامل این خطا معمولاً این شکلی است:
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)
این خطا یعنی برنامهی کلاینت (SSMS، یک اپلیکیشن، یا ابزار دیگر) اصلاً نتوانسته یک کانال ارتباطی شبکهای با SQL Server برقرار کند — قبل از اینکه حتی نوبت به بررسی نامکاربری/رمزعبور برسد. علت تقریباً همیشه یکی از اینهاست: سرویس خاموش، نام سرور/Instance اشتباه، پروتکل غیرفعال، یا فایروال.
مرحله ۱ — سرویس SQL Server اجرا میشود؟
در SQL Server Configuration Manager بخش SQL Server Services را باز کن. اگر SQL Server (MSSQLSERVER) خاموش است، Start کن.
مرحله ۲ — سرویس SQL Server Browser فعال است؟
اگر با یک Named Instance (مثل SQLEXPRESS) کار میکنی، سرویس SQL Server Browser باید در حال اجرا باشد؛ این سرویس مسئول پیدا کردن پورت درست هر Instance روی شبکه است:
مرحله ۳ — پروتکلهای شبکه فعال هستند؟
در همان ابزار، مسیر SQL Server Network Configuration → Protocols for [نام Instance] را باز کن و مطمئن شو TCP/IP روی Enabled است. اگر خاموش بود، فعالش کن و سرویس SQL Server را ریاستارت کن.
مرحله ۴ — نام سرور و فرمت اتصال را دوباره بررسی کن
| سناریو | فرمت درست |
|---|---|
| Default Instance محلی | localhost یا . |
| Named Instance محلی | localhost\SQLEXPRESS |
| سرور روی شبکه، پورت دستی | 192.168.1.20,1433 |
مرحله ۵ — تست با ping و telnet
برای اطمینان از اینکه مشکل واقعاً شبکهای است، از سیستم کلاینت این دستورها را در Command Prompt امتحان کن:
ping 192.168.1.20 telnet 192.168.1.20 1433
اگر telnet نتواند وصل شود، تقریباً قطعی است که فایروال یا تنظیمات شبکه پورت 1433 را میبندد.
مرحله ۶ — بررسی فایروال
یک قانون Inbound در Windows Defender Firewall برای پورت TCP 1433 (و در صورت استفاده از SQL Browser، پورت UDP 1434) اضافه کن.
جمعبندی
این خطا تقریباً همیشه یک مشکل «رسیدن به سرور» است، نه مشکل هویت. با بررسی ترتیبی سرویس SQL Server، سرویس Browser (برای Named Instance)، فعالبودن TCP/IP، درستی نام سرور، و در نهایت فایروال، معمولاً مشکل کاملاً برطرف میشود.
سوالات متداول دربارهی این موضوع
Error 40، Error 53 و Error 26 چه فرقی دارند؟
Error 40 پیام عمومی «نمیتوان اتصال به SQL Server را باز کرد» است؛ Error 53 یعنی مسیر شبکه یا نام سرور پیدا نشد؛ Error 26 یعنی سرور/Instance مشخصشده پیدا نشد.
SQL Server Browser چه نقشی دارد؟
برای Instanceهای نامدار، پورت پویای هر Instance را (از طریق UDP 1434) به کلاینت اعلام میکند. اگر متوقف باشد، اتصال با نام Instance شکست میخورد.
پورت پیشفرض SQL Server چند است؟
TCP 1433 برای Instance پیشفرض. Instanceهای نامدار معمولاً از پورت پویا استفاده میکنند، مگر اینکه پورت ثابت تعیین شود.
میخوای SQL Server را از پایه یاد بگیری؟
دورهی رایگان SQLFarsi را با درس معماری SQL Server شروع کن.
شروع یادگیری