متن کامل این خطا معمولاً این شکلی است:
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 Configuration Manager بخش SQL Server Services را باز کن. اگر SQL Server (MSSQLSERVER) خاموش است، Start کن.
اگر با یک 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 |
برای اطمینان از اینکه مشکل واقعاً شبکهای است، از سیستم کلاینت این دستورها را در 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، درستی نام سرور، و در نهایت فایروال، معمولاً مشکل کاملاً برطرف میشود.
دورهی رایگان SQLFarsi را با درس معماری SQL Server شروع کن.
شروع یادگیری