8
respostas

Erro ao tentar conectar ao SQLSERVER

Boa tardea todos:

Ao terminar o projeto utilizando o Mysql, resolvi testar utilizando o sqlserver,

Elaborei um banco de dados, utilizando o Management Studio, fiz uma AUTENTICAÇÃO DO SQL SERVER: login: sa senha: smn15031950 Criei um banco: oscli32

Toda a conexão funcionou perfeitamente,

Mas quando tento compilar o spring boot dá o seguinte erro:

com.microsoft.sqlserver.jdbc.SQLServerException: Falha na conexão TCP/IP com o host localhost/oscli32, porta 1433. Erro: " localhost/oscli32. Verifique as propriedades da conexão. Verifique se uma instância do SQL Server está sendo executada no host e se está aceitando conexões TCP/IP na porta. Verifique se as conexões TCP na porta não foram bloqueadas por um firewall."

Eu baixei as seguintes dependências para o sqlserver:

<dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <scope>runtime</scope>
        </dependency>

E fiz a sequinte configuração no aplication properties:

spring.datasource.url=jdbc:sqlserver://localhost/oscli32
spring.datasource.username=sa
spring.datasource.password=smn15031950
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver


spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true


server.error.include-stacktrace=never

O que mais posso fazer para estabelecer a conexão com o sqlserver utilizando o spring boot?

Desde já lhes agradeço a atenção

8 respostas

Certifique-se de que seu SQLServer está com o firewall configurado para aceitar conexões externas.

Você pode dar uma olhada nisso seguindo esses passos:

Abra o SQL Server Configuration Manager. Expanda "SQL Server Network Configuration" e selecione a instância do SQL Server. Certifique-se de que o protocolo "TCP/IP" está habilitado. Configurar Porta TCP/IP:

Ainda no SQL Server Configuration Manager, vá para "Protocols for [Sua Instância]" > "TCP/IP". Na guia "IP Addresses", encontre a seção "IPAll" e configure a "TCP Port" para 1433 (ou a porta desejada). Reiniciar o Serviço do SQL Server:

Após fazer essas alterações, reinicie o serviço do SQL Server para que as alterações entrem em vigor.

Oi Danilo:

Tudo bem com você?

Muito obrigado por seu retorno,

vc sugeriu observar a habilitação do TCPIP, ele já está habilitado, segue print:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Em minhas pesquisas, encontrei um internauta com exatamente o mesmo problema que o meu, porém eu não entendi como fazer a solução que ele encontrou, seguem as palavras dele:

(aqui ele descrever o problema): "Fiz igualzinho no vídeo tanto no POM como em application.properties mas mesmo assim continua me aparecendo um erro de "O driver não pôde estabelecer uma conexão segura com o SQL Server usando a criptografia SSL". Já tentei todos os tipos de métodos que achei na internet mas mesmo assim não funciona,"

(aqui ele descreve a solução): consegui resolver, o problema era versão da dependência do SQL Server no Maven Repository que não sei o pq mas não suporta. Tava tentando a versão mais atual que é a 11 e por tentativa descobri que a mais atual que não deu problema era a versão 9.

Eu não entendi o que ele fez e como fazer o que ele fez, você poderia me explicar, por gentileza?

Desde já muito obrigado!!

Mais um detalhe importante:

o meu firewall já está desabilitado.

Oi Eudermes, tudo bem e você?

Pelo o que eu pude entender do trecho, a pessoa que postou essa solução apenas especificou uma versão mais antiga da dependência do SQLServer no pom.xml

Ao invés de você tentar isso conforme você colocou no primeiro post:

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
     <scope>runtime</scope>
</dependency>

Você colocaria a tag version dentro da dependência para especificar a versão que você quer:

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <scope>runtime</scope>
    <version>AQUI VOCÊ ESPECIFICA A VERSÃO</version>
</dependency>

Quando você não especifica nada, por padrão o maven usa a mais recente.

Espero ter ajudado.

Oi Danilo:

Muito obrigado pelo suporte, porém, ao implementar a depência do sql server conforme você me sugeriu, quando dei o reload no maven, não copilou e deu erro:

Ao inserir a tag com a versão já dá erro: ( a tag fica vermelha),( qualquer número , já quebra o código) com.microsoft.sqlserver mssql-jdbc runtime 9.1.0

Mesmo vermelho, se tento dar o reload dá o seguinte erro:

com.microsoft.sqlserver:mssql-jdbc:jar:9.1.0 was not found in https://repo.maven.apache.org/maven2 during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of central has elapsed or updates are forced

Try to run Maven import with -U flag (force update snapshots)

A tag sugerida por você ficou assim:

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <scope>runtime</scope>
    <version>9.1.0</version>
</dependency>

Nesse caso você tem que especificar a versão da JRE que você está usando após a versão.

Ficaria algo parecido com isso:

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <scope>runtime</scope>
    <version>9.1.0.jre15-preview</version>
</dependency>

Eu não sei até qual versão de JRE essa versão da dependência do SQLServer suporta, mas eu acho que é até a 15.

Danilo:

Após implementar sua sugestão, o mesmo problema de antes:

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeMesmo alterando as versões( da dependência do sql server e do jre) não resolveu.