Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Use este artigo para encontrar orientações de solução de problemas para o mssql-python motorista. Comece pelo sintoma ou mensagem de erro que corresponde ao seu problema.
Problemas de instalação
o pip falha ao instalar ou compila a partir do código-fonte
Para versões de Python não suportadas, rodas ausentes, ambientes virtuais inativos e bibliotecas Linux ausentes, veja Solucionar problemas de instalação e conexão.
Instalações conflitantes de drivers
Para erros de importação ou comportamentos inesperados quando mssql-python e pyodbc são instalados juntos, veja Solucionar problemas de instalação e conexão.
Problemas de conexão
Não consigo conectar ao servidor
Para SQLSTATE08001, servidores inalcançáveis, serviços parados e regras de firewall SQL do Azure, veja Solucionar problemas de instalação e conexão.
Falha no logon
Para SQLSTATE 28000, incompatibilidades de modo de autenticação, credenciais inválidas e usuários de banco de dados ausentes, veja Solucionar problemas de instalação e conexão.
Tempo de espera da conexão esgotado
Para SQLSTATE HYT00 ou HYT01, latência de rede, servidores lentos e configurações de tempo de conexão (timeout), veja Solucionar problemas de instalação e conexão.
Erros de certificado SSL
Para erros de certificado não confiáveis e opções seguras de desenvolvimento local, veja Solucionar problemas de instalação e conexão.
Problemas de execução de consultas
Tabela ou objeto não encontrado
Para SQLSTATE 42S02, contexto do banco de dados, qualificação de esquema e verificações da existência de tabelas, consulte Solucionar problemas de consulta, dados e operação.
Erro de sintaxe
Para SQLSTATE 42000, sintaxe SQL, escape de cadeia de caracteres e consultas parametrizadas, consulte Solucionar problemas de consulta, dados e operação.
Erros de parâmetros
Para SQLSTATE 07001, quantidade de placeholders e estilos de parâmetros compatíveis, consulte Solucionar problemas de consulta, dados e operação.
Questões com tipos de dados
Erros de conversão de data e hora
Para obter informações sobre SQLSTATE 22007 e a conversão do parâmetro datetime, consulte Solucionar problemas de consulta, dados e operação.
Questões de precisão decimal
Para valores decimais truncados ou arredondados, veja Solucionar problemas de consulta, dados e operações.
Problemas de codificação Unicode
Para caracteres especiais distorcidos e tipos de coluna Unicode, consulte Solucionar problemas de consulta, dados e operação.
Problemas de desempenho
Execução lenta da consulta
Para indexação, grandes conjuntos de resultados e pooling de conexões, veja Solucionar problemas de consulta, dados e operações.
Problemas de memória com resultados grandes
Para streaming e paginação de grandes conjuntos de resultados, veja Solucionar problemas de consulta, dados e operações.
Questões de transação
Escopo de tabelas temporárias com autocommit
Para tabelas temporárias que desaparecem após rollback e instruções DDL que exigem autocommit, consulte Solução de problemas de consulta, dados e operação.
Transação não comprometida
Para alterações de dados que não persistem após o fechamento da conexão, veja Solucionar problemas de consulta, dados e operação.
Erros de deadlock
Para obter orientações sobre SQLSTATE 40001, nova tentativa e análise de deadlocks recorrentes, consulte Solucionar problemas de consulta, dados e operação.
Problemas de carregamento em massa
Violações de restrições durante a cópia em massa
Para violações de chave primária, única, verificação ou chave estrangeira durante cópias em massa, veja Solucionar problemas de consulta, dados e operação.
Erros de mapeamento de colunas
Para incompatibilidades na contagem e na ordem das colunas em cópia em massa, consulte Solucionar problemas de consulta, dados e operação.
Incompatibilidades de tipo durante a cópia em massa
Para valores truncados, arredondados ou incorretos após cópia em massa, consulte Solucionar problemas de consulta, dados e operação.
Falhas na vinculação de tipos do NumPy
Para falhas na vinculação de parâmetros com tipos inteiros ou de ponto flutuante do NumPy, veja Solucionar problemas de consulta, dados e operação.
Cópia em massa com tabelas temporárias
Para erros Invalid object name ao usar bulkcopy() com uma tabela temporária de sessão, consulte Solucionar problemas de consulta, dados e operação.
Questões de contêiner e CI
Bibliotecas de sistema ausentes no Linux
Para a ausência das bibliotecas libltdl ou Kerberos em ambientes Linux, consulte Resolver problemas de instalação e conexão.
Erros SSL do macOS após a instalação
Para erros relacionados a SSL no macOS, incluindo o Apple Silicon, veja Solucionar problemas de instalação e conexão.
Ferramentas de diagnóstico
Ativar o log do driver
Use mssql_python.setup_logging() para ativar o registro em DEBUG. O driver registra instruções SQL, parâmetros, operações ODBC internas e mudanças de estado da conexão.
import mssql_python
# Enable logging to file (default)
mssql_python.setup_logging()
# Output to stdout (useful for CI/CD and containers)
mssql_python.setup_logging(output="stdout")
# Output to both file and stdout
mssql_python.setup_logging(output="both")
# Custom log file path (must use .txt, .log, or .csv extension)
mssql_python.setup_logging(log_file_path="/var/log/myapp/mssql.log")
Os arquivos de log usam o formato CSV e são rotacionados automaticamente ao atingirem 512 MB, mantendo cinco backups. O driver limpa dados sensíveis, como senhas e tokens de acesso, na saída de log.
Para adicionar entradas de aplicação ao log do driver, use driver_logger:
import mssql_python
from mssql_python.logging import driver_logger
mssql_python.setup_logging()
driver_logger.debug("[App] Starting data processing")
driver_logger.error("[App] Failed to process record")
Cuidado
O registro em log gera uma sobrecarga de desempenho. Ative isso apenas quando você resolver um problema. Não ative isso por padrão em produção.
Obtenha informações sobre o motorista
Recupere a versão do driver e os detalhes do servidor de uma conexão ativa:
import mssql_python
conn = mssql_python.connect(connection_string)
print(f"Version: {mssql_python.__version__}")
print(f"Server name: {conn.getinfo(mssql_python.SQL_SERVER_NAME)}")
print(f"Database name: {conn.getinfo(mssql_python.SQL_DATABASE_NAME)}")
Verificar o estado da conexão
Execute uma consulta leve para testar se uma conexão ainda está aberta:
import mssql_python
try:
cursor = conn.cursor()
cursor.execute("SELECT 1")
print("Connection is open")
except mssql_python.Error:
print("Connection is closed or broken")
Referência rápida: Erros comuns
| Erro | SQLSTATE | Causa comum | Resolução de problemas |
|---|---|---|---|
| O cliente não consegue estabelecer conexão | 08001 |
Servidor inacessível | Não consigo conectar ao servidor |
| Falha no logon | 28000 |
Credenciais incorretas | Falha no login |
| Tempo limite expirado |
HYT00 ou HYT01 |
Rede lenta | Tempo limite da conexão |
| Nome de objeto inválido | 42S02 |
Tabela ou esquema incorreto | Tabela ou objeto não encontrado |
| Erro de sintaxe | 42000 |
Erro SQL | Erro de sintaxe |
| Violação de restrição | 23000 |
Violação de chave estrangeira ou chave primária | Violações de restrições durante a cópia de massa |
| Deadlock | 40001 |
Contenção de bloqueio | Erros de bloqueio |