Car*_*tsz 5 sql-server linux sqlcmd connectivity
我正在尝试从 Linux Ubuntu 16.04 计算机连接到 SQL Server Express 服务器。我为 linux 机器安装了所有 SQL 命令行实用程序,并按照 Linux 文档上的 Microsoft SQL Server 的说明进行操作。
当我跑
sqlcmd -S ip/SQLEXPRESS -U SA -P 1234
Run Code Online (Sandbox Code Playgroud)
该命令总是返回以下错误:
适用于 SQL Server 的 Microsoft ODBC 驱动程序 13:登录超时已过期。
适用于 SQL Server 的 Microsoft ODBC 驱动程序 13:TCP 提供程序:错误代码 0x2AF9
我能够从 Windows 10 计算机运行相同的命令,并且没有任何缺陷。
linux 计算机可以与服务器机器和 SQL Server 1433 端口进行通信。我使用 linux nc 命令 (netcat) 对此进行了测试。
Linux nc 命令结果:
nc -z -v -w5 192.168.0.1 1433
Run Code Online (Sandbox Code Playgroud)
连接到 192.168.0.1 1433 端口 [tcp/ms-sql-s] 成功!
有什么建议或缺少什么吗?
我曾尝试更改端口、参数顺序等……但 Linux 版本sqlcmd不起作用。
我还尝试包含额外的 '/' 字符,因为它在 Linux 上很特殊。新的命令行是,sqlcmd -S ip//SQLEXPRESS -U SA -P 1234但它不起作用。它工作得更快但返回其他错误:
适用于 SQL Server 的 Microsoft ODBC 驱动程序 13:TCP 提供程序:错误代码 0x2746。
实例名称也不起作用。sqlcmd -S SERVER-NAME\\SQLEXPRESS -U SA -P 1234或sqlcmd -H ipaddress -S SERVER-NAME\\SQLEXPRESS -U SA -P 1234该命令识别引号 so sqlcmd -S "SERVER-NAME\SQLEXPRESS" -U SA -P 1234。什么都行不通。
正确的语法是sqlcmd -S ip\\SQLEXPRESS -U SA -P 1234双'\'。反正也连接不上。我有好几天都在为此苦苦挣扎,但找不到使这件事起作用的方法。