1
resposta

como conectar em um macso e no vscode?

Subi um docker com sql server (com essa imagem mcr.microsoft.com/azure-sql-edge), fiz a connexão do sql server na extensão do vscode, mas não aprece a opção de extração automática da stringConnection. Então creiri a string baseada no que achei pela internet, mas continua dando esse erro: A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 35 - An internal exception was caught).

A função de conexão está dessa forma:

public SqlConnection doConnection(){
        string serverAddress = "localhost";
        string port = "1433";
        string databaseName = "screenSound";
        string username = "SA";
        string password = "StrongPass123!";
        string connectionString = $"Data Source={serverAddress},{port};Initial Catalog={databaseName};User ID={username};Password={password};";
        return new SqlConnection(connectionString);
}

E esses são os logs do container:

2024-03-22 11:31:10 2024/03/22 14:31:10 [launchpad] [6103e030] [00000001] INFO: Logging stopped for 00000001-0000-002a-0000-080000000100
2024-03-22 11:31:10 2024/03/22 14:31:10 [launchpad] [6103e030] [00000001] WARNING: Error waiting for external service process waitid: no child processes
2024-03-22 11:31:10 2024/03/22 14:31:10 [launchpad] [6103e030] [00000001] INFO: Pid 206 exited with status 0 for SessionID:00000001-0000-002a-0000-080000000100
2024-03-22 11:31:10 2024/03/22 14:31:10 [launchpad] [6103e030] [00000001] INFO: All current child processes have exited. SessionID:00000001-0000-002a-0000-080000000100
2024-03-22 11:31:10 2024/03/22 14:31:10 [launchpadd] [6103e030] INFO: Received packet of type 18 [MessageTypeXdbDataPackageStop]
2024-03-22 11:31:10 2024/03/22 14:31:10 [launchpadd] [6103e030] INFO: Packet header: &{Version:1 TypeAndEndOfMessageBit:32786 PacketSizeInBytes:40 SessionID:132b5612-8e1d-4c50-8681-062137fd1dda}
2024-03-22 11:31:10 2024/03/22 14:31:10 [launchpadd] [6103e030] INFO: DataPackageStop message is received with package GUID 6103e030-0f84-44aa-bbe5-eb231a8e3eb1.
2024-03-22 11:31:10 2024/03/22 14:31:10 [launchpadd] [6103e030] INFO: Launchpad of package GUID 6103e030-0f84-44aa-bbe5-eb231a8e3eb1 found in the store.
2024-03-22 11:31:10 2024/03/22 14:31:10 [launchpadd] [6103e030] INFO: Launchpad of package GUID 6103e030-0f84-44aa-bbe5-eb231a8e3eb1 is terminated.
2024-03-22 11:31:10 2024/03/22 14:31:10 [launchpadd] [6103e030] INFO: resume after receiving stop message. 
2024-03-22 11:31:10 2024/03/22 14:31:10 [launchpadd] [6103e030] INFO: Sending message of type 19 [MessageTypeXdbPackageResume], SessionID:132b5612-8e1d-4c50-8681-062137fd1dda
2024-03-22 11:31:10 2024/03/22 14:31:10 [launchpadd] [6103e030] INFO: Sent message of type 19 [MessageTypeXdbPackageResume], SessionID:132b5612-8e1d-4c50-8681-062137fd1dda
The login info is removed from the store and destroyed.
1 resposta

Olá, Ricardo.

Tudo bem?

A string de conexão que você está utilizando parece estar correta. No entanto, o erro que você está recebendo geralmente está relacionado a um problema de rede ou de configuração do servidor SQL.

Aqui estão algumas coisas que você pode tentar:

  1. Verifique se o container Docker está em execução. Você pode fazer isso usando o comando docker ps no terminal. Se o seu container não estiver na lista, você precisará iniciá-lo com docker start <container_id>.

  2. Verifique se a porta 1433 está exposta e mapeada corretamente para o seu container Docker. Você pode fazer isso usando o comando docker port <container_id>. Se a porta 1433 não estiver mapeada, você pode precisar recriar o container com a opção -p 1433:1433.

  3. Verifique se você pode se conectar ao servidor SQL a partir do terminal do seu Mac. Você pode fazer isso usando o comando sqlcmd -S localhost,1433 -U SA -P StrongPass123!. Se você não conseguir se conectar, pode haver um problema com o servidor SQL em si.

  4. Verifique se o firewall do seu Mac não está bloqueando a conexão. Você pode fazer isso acessando as configurações do Firewall nas Preferências do Sistema.

  5. Por fim, se nada disso funcionar, pode ser útil verificar os logs do servidor SQL para obter mais informações sobre o erro. Você pode fazer isso usando o comando docker logs <container_id>.

Espero que essas sugestões possam te ajudar a solucionar o problema. Qualquer coisa compartilha mais detalhes. Espero ter ajudado e bons estudos!