无法通过JDBC与Docker SQL Server连接(但SSMS可以工作)

问题描述 投票:0回答:1

Context

我有一个在Docker(Linux容器)中运行的SQL Server实例。该端口映射到1433:1433,使其在主机上可用。它具有用户名和用于身份验证的强密码。

docker run --name sql1 -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=P4ssw0rd" -p 1433:1433 -d microsoft/mssql-server-linux:2017-latest

要连接到SQL Server Management Studio,我可以简单地使用以下内容:

  • 服务器名称:本地主机
  • 登录:sa
  • 密码:P4ssw0rd

问题

它完全按预期工作。但是,当我尝试通过JBoss与JDBC连接时,它无法连接。数据源的相关部分如下:

<connection-url>jdbc:sqlserver://localhost</connection-url>
<security>
  <user-name>sa</user-name>
  <password>P4ssw0rd</password>
</security>

当我运行具有启用的TCP / IP的本地SQL Server Express实例(而不是Docker)时,与JDBC的连接工作正常,因此问题不在于我的JDBC配置的结构。主要区别在于,我在那里使用了命名实例(MACHINE \ INSTANCE_NAME),而不是像localhost这样的主机名。可能与连接问题有关吗?

更新

当使用本地安装的JDBC驱动程序进行调试时,我设法通过使用计算机名而不是localhost使其工作。但是,JBoss仍然不希望与其连接,因此问题仍然存在。

我还发现,如果我将端口更改为无效端口,则连接将花费很长时间,然后超时,而标准的1433端口会立即出现错误。这确实表明SQL Server肯定在该端口上运行。

sql-server docker jdbc
1个回答
0
投票

您得到答案了吗?有同样的问题请分享

欢呼声

© www.soinside.com 2019 - 2024. All rights reserved.