1. 确定连接字符串
在部署Sqlserver到Azure上时,最常见的错误之一是无法连接到Sqlserver。这种情况下,需要检查连接字符串是否正确。
连接字符串通常包含以下几个部分:服务器名称,用户名,密码和数据库名称。
如果是使用Microsoft SQL Server Management Studio进行连接的,连接字符串可以从“连接属性”中找到:
Data Source=[server name];Initial Catalog=[database name];Integrated Security=False;User ID=[user name];Password=[password]
提示:如果是使用集成Windows身份验证进行连接的话,Integrated Security应该设置为True。
2. 配置Sqlserver防火墙
在Azure虚拟网络中,Sqlserver默认会拒绝所有外部连接。如果想要从外部连接到Sqlserver,需要在Sqlserver防火墙中添加允许连接的IP地址。
2.1 配置Sqlserver IP防火墙
可以通过Azure门户来配置Sqlserver IP防火墙:
登录到Azure门户,选择相应的Sqlserver。
选择“防火墙和虚拟网络”选项卡。
在“规则”下,单击“添加客户端IP”以添加当前客户端IP。
单击“保存”以保存更改。
如果需要添加特定IP地址的防火墙规则,可以使用以下步骤:
登录到Azure门户,选择相应的Sqlserver。
选择“防火墙和虚拟网络”选项卡。
在“规则”下,单击“添加防火墙规则”。
输入规则名称。
输入要允许的IP地址范围。
单击“保存”以保存更改。
2.2 配置虚拟网络防火墙
如果在虚拟网络中连接到Sqlserver,还需要配置虚拟网络的防火墙规则。
进入虚拟网络的“防火墙”选项卡。
在“规则”下,单击“添加规则”。
输入规则名称。
选择“Sqlserver”作为目标服务。
设定源IP地址。
选择允许流量。
单击“保存”以保存更改。
3. 配置Sqlserver服务
如果Sqlserver的服务没有正确配置的话,也可能会导致无法连接的问题。在此情况下,需要检查以下几个方面:
3.1 SQL Server TCP/IP协议是否启用
在默认情况下,Sqlserver可能会禁用TCP/IP协议。如果是这样的话,则需要启用TCP/IP协议。
可以使用以下步骤来启用TCP/IP协议:
打开Microsoft SQL Server Configuration Manager。
在左侧面板中,选择“SQL Server 网络配置”。
选择“协议”,并确保“TCP/IP”协议已启用。
如果未启用,则右键单击“TCP/IP”协议,选择“属性”,并设置“启用”属性为“是”。
单击“应用”以保存更改。
重启Sqlserver服务,以使更改生效。
3.2 Sqlserver监听的IP地址和端口是否正确
如果Sqlserver服务启用了多个IP地址或端口号,则需要检查是否使用了正确的IP地址和端口号。
可以使用以下步骤来检查Sqlserver服务所监听的IP地址和端口号:
打开Microsoft SQL Server Configuration Manager。
在左侧面板中,选择“SQL Server 网络配置”。
选择“协议”。
右键单击“TCP/IP”协议,并选择“属性”。
选择“IP地址”标签页。
确保目标IP地址和端口号与连接字符串中的IP地址和端口号一致。
单击“应用”以保存更改。
重启Sqlserver服务,以使更改生效。
4. 参考文献
Azure. 2019. "Connect To SQL Server From Azure Virtual Machines (Resource Manager)". Docs.Microsoft.Com. https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sql/virtual-machines-windows-portal-sql-server-provision#connect-to-sql-server-from-azure-virtual-machines-resource-manager.
Microsoft. 2019. "Configure Microsoft Azure SQL Database With Firewall". Docs.Microsoft.Com. https://docs.microsoft.com/en-us/azure/sql-database/sql-database-firewall-configure.