Some network protocols, like TCP/IP, are disabled by default in SQL Server. To allow TCP connections, you need to enable them and restart the SQL Server service.
Here’s a simple guide to do this via GUI & command: :
# Option 1: Enable TCP/IP via SQL Server Configuration Manager.
# Option 2: Enable TCP/IP using PowerShell.
Option 1: Enable TCP/IP via SQL Server Configuration Manager
1. Open SQL Server Configuration Manager.
Use the Start Menu to locate and open it.
2. Access the TCP/IP Protocols.
Navigate to SQL Server Network Configuration > Protocols for MSSQLSERVER and double-click TCP/IP.
3. Enable the Protocol.
In the Protocol tab, set Enabled to Yes.
4. Adjust IP Settings.
Under the IP Addresses tab, configure the required IPs (e.g., IPv4).
5. Apply Changes.
Click Apply and close the properties window.
6. Restart the SQL Server Service.
Go to SQL Server Services in the Configuration Manager. Right-click the SQL Server service and select Restart.
Option 2: Enable TCP/IP Using PowerShell
If you prefer scripting, you can use PowerShell to enable TCP/IP and restart the service.
The script below is from MS Docs: Enable or disable a server network protocol
I’ve amended it to run locally, and added some extra visibility of the SQL Service restart.
Prerequisite: Run Import-Module "sqlps"
to ensure PowerShell has the necessary SQL Server modules.
## Enable/Disable MSSQL TCP & Named Pipes $smo = 'Microsoft.SqlServer.Management.Smo.' $wmi = new-object ($smo + 'Wmi.ManagedComputer'). # Enable TCP Protocol for the locl machine $uri = "ManagedComputer[@Name='" + (get-item env:\computername).Value + "']/ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Tcp']" $Tcp = $wmi.GetSmoObject($uri) $Tcp.IsEnabled = $true $Tcp.Alter() # Enable Named Pipes Protocol for the local machine $uri = "ManagedComputer[@Name='" + (get-item env:\computername).Value + "']/ServerInstance[@Name='MSSQLSERVER']/ServerProtocol[@Name='Np']" $Np = $wmi.GetSmoObject($uri) $Np.IsEnabled = $true $Np.Alter() # Restart the SQL Services $DfltInstance = $Wmi.Services['MSSQLSERVER'] $DfltInstance.ServiceState $DfltInstance.Stop(); Start-Sleep 1 $DfltInstance.Refresh(); $DfltInstance.ServiceState Start-Sleep 1 $DfltInstance.Refresh(); $DfltInstance.ServiceState $DfltInstance.Start(); Start-Sleep 1 $DfltInstance.Refresh(); $DfltInstance.ServiceState
After enabling TCP/IP, you can check the status using SQL Server Configuration Manager or the PowerShell script itself.
Leave a Reply