“.” 和 “127.0.0.1” 在 SQL Server 连接中的差异和解决方法
public List<string> GetDatabasesOnDevice(string deviceIp, string username, string password)
{
List<string> databaseNames = new List<string>();
try
{
// 构建连接字符串
string connectionString = $"Password={password};User ID={username};Data Source={deviceIp}";
// 创建连接对象
using (SqlConnection connection = new SqlConnection(connectionString))
{
// 打开数据库连接
connection.Open();
// 查询所有数据库的命令
SqlCommand command = new SqlCommand("SELECT name FROM sys.databases", connection);
// 执行命令并读取结果
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
string databaseName = reader.GetString(0);
databaseNames.Add(databaseName);
}
}
}
}
catch (Exception ex)
{
Console.WriteLine($"获取数据库失败:{ex.Message}");
}
return databaseNames;
}
在使用这个方法时,我发现deviceIp="."和deviceIp="127.0.0.1"是不同的,使用“.”就不会报错,使用“127.0.0.1”就会报错;故有以下文章:
在 SQL Server 连接过程中,使用 “.” 和 “127.0.0.1” 这两个值可能会导致不同的结果和问题。本文将解释这两个值的含义和用途,并提供解决方法以处理可能出现的连接问题。
“.” 表示本地实例:
当使用 “.” 作为连接字符串的服务器名称时,它代表本地计算机上的 SQL Server 实例。这是一种简便的方式,用于连接正在运行的默认本地实例。
使用 “.” 进行连接时,不需要指定 IP 地址或主机名,系统将自动连接到本地计算机上的 SQL Server 实例。
“127.0.0.1” 代表本地回环地址:
“127.0.0.1” 是本地回环地址,也称为环回地址或回送地址。它是每个计算机上用于自我通信的特殊 IP 地址。
当使用 “127.0.0.1” 作为连接字符串的服务器名称时,它尝试通过网络连接到本地计算机上的 SQL Server 实例。
差异和解决方法:
1、网络配置:
使用 “.” 进行连接时,它直接连接到本地计算机上的 SQL Server 实例,不涉及网络通信。
使用 “127.0.0.1” 进行连接时,它需要进行网络通信,并通过网络协议进行连接。因此,确保网络配置正确且允许通过 “127.0.0.1” 进行连接。
2、防火墙设置:
防火墙可能阻止通过 “127.0.0.1” 进行的网络连接。请检查防火墙设置,确保允许 SQL Server 使用 “127.0.0.1” 进行连接。
3、SQL Server 远程连接配置:
SQL Server 可能未配置为允许远程连接或仅允许通过本地连接。
使用 SQL Server 配置管理器,检查 SQL Server 实例的网络配置和协议设置,确保允许远程连接和使用 “127.0.0.1” 进行连接。
综上所述,使用 “.” 和 “127.0.0.1” 进行 SQL Server 连接时,需要考虑网络配置、防火墙设置和 SQL Server 的远程连接配置。通过确保这些设置正确配置,您应该能够成功连接到 SQL Server 实例。
具体方法:
检查 SQL Server 远程连接配置:
1.打开 SQL Server 配置管理器。
按下 Win + R 键打开运行对话框。
输入 sqlservermanager<版本号>.msc,其中 <版本号> 是您安装的 SQL Server 版本号,例如 sqlservermanager14.msc 表示 SQL Server 2017 的配置管理器。以下是一些常见的版本号示例:
SQL Server 2019:sqlservermanager15.msc
SQL Server 2017:sqlservermanager14.msc
SQL Server 2016:sqlservermanager13.msc
SQL Server 2014:sqlservermanager12.msc
SQL Server 2012:sqlservermanager11.msc
SQL Server 2008:sqlservermanager10.msc
按下 Enter 键或单击 “确定” 按钮打开 SQL Server 配置管理器。
打开 SQL Server 配置管理器后,您将能够管理和配置 SQL Server 实例的各种设置,包括网络配置和协议设置。
请注意,确保使用管理员权限运行打开 SQL Server 配置管理器的命令或运行对话框。如果您没有管理员权限,可能无法打开 SQL Server 配置管理器。
2.在左侧面板中,选择 “SQL Server 网络配置”。
3.选择 “协议”,然后确保 “TCP/IP” 协议已启用。
4.右键单击 “TCP/IP” 协议,选择 “属性”。
5.在 “IP 地址” 选项卡中,确保针对需要使用的 IP 地址(如 127.0.0.1)的行,“启用” 字段设置为 “是”。
6.在 “IP 地址” 选项卡中,确保针对需要使用的 IP 地址的行,“TCP 端口” 字段设置为 SQL Server 监听的端口号(默认为 1433)。
7.确保在 “IP 地址” 选项卡中没有其他冲突的 IP 地址。
请注意,如果您在连接过程中遇到问题或错误信息,请仔细检查错误消息以获取更多详细信息,并根据具体情况调整网络和配置设置。如有需要,您还可以参考 SQL Server 文档或咨询相关技术支持,以获取更多帮助和指导。