将 Spring Boot JDBCTemplate 连接到 Azure SQL,连接字符串和 TCP/IP 的问题

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

我似乎无法使用 JDBCTemplate 将我的 Java Spring Boot 项目连接到 Azure SQL。我不断收到错误,无论是通过使用连接字符串的 Autowired,还是通过选项 2)手动设置数据源。我该如何解决这个问题? 但是,这两个选项都适用于我计算机上的 localhost sql 数据库。

错误:与主机的 TCP/IP 连接 tcp:food-server.database.windows.net,端口 1433 发生故障。 错误:“tcp:food-server.database.windows.net。验证 连接属性。确保 SQL Server 实例已存在 在主机上运行并接受端口上的 TCP/IP 连接。制作 确保到端口的 TCP 连接未被防火墙阻止。”

选项1)

@Autowired
在application.properties文件中使用connectionString,不起作用

spring.datasource.url= jdbc:sqlserver://tcp:food-server.database.windows.net,1433;encrypt=true;trustServerCertificate=true;databaseName=Test
spring.datasource.username=sauser
spring.datasource.password=password12345*

选项 2)带有数据源的配置 Bean,目前也不起作用

@Configuration
public class ServerConfiguration {
 
    @Bean
    public DataSource getDataSource() {
        SQLServerDataSource ds = new SQLServerDataSource();
        ds.setUser("sauser");
        ds.setPassword("password12345*");
        ds.setServerName("tcp:food-server.database.windows.net");
        ds.setPortNumber(1433);
        ds.setTrustServerCertificate(true);
        ds.setDatabaseName("test");
        return ds;
    }

    @Bean
    public NamedParameterJdbcTemplate namedParameterJdbcTemplate() {
        return new NamedParameterJdbcTemplate(getDataSource());
    }

Azure IP 安全设置:

我还确保在 Azure SQL 门户、数据库、设置防火墙中允许我的 IP 地址

https://learn.microsoft.com/en-us/azure/azure-sql/database/firewall-create-server-level-portal-quickstart?view=azuresql

java spring-boot azure-sql-database jdbctemplate
1个回答
0
投票

与主机 tcp:food-server.database.windows.net、端口 1433 的 TCP/IP 连接失败。错误:“tcp:food-server.database.windows.net。验证连接属性。确保 SQL Server 实例正在主机上运行并接受端口上的 TCP/IP 连接。确保与端口未被防火墙阻止。”

正如 @tgdavies 评论的那样,您提供的 URL 格式不正确,这可能是您收到此错误的原因。 URL 中的“tcp:主机名中的内容应删除”。您可以按以下格式提供 URL:

spring.datasource.url= jdbc:sqlserver://<serverName>.database.windows.net,1433;encrypt=true;trustServerCertificate=true;databaseName=<databaseName>

通过这样做,您应该能够成功连接到数据库。如需了解更多信息,您可以参阅MS文档了解如何准备配置文件以连接到Azure SQL数据库。

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