Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Utiliza este artículo para encontrar orientación de solución de problemas para el mssql-python conductor. Empieza con el síntoma o mensaje de error que coincida con tu problema.
Problemas de instalación
Fallos de instalación de pip o compilación desde el código fuente
Para versiones de Python no soportadas, ruedas ausentes, entornos virtuales inactivos y librerías Linux ausentes, consulte Solucionar problemas de instalación y conexión.
Instalaciones de controladores en conflicto
Para errores de importación o comportamientos inesperados cuando mssql-python y pyodbc se instalan juntos, consulte Solucionar problemas de instalación y conexión.
Problemas de conexión
No se puede conectar al servidor
Para SQLSTATE08001, servidores inalcanzables, servicios detenidos y reglas de firewall Azure SQL, consulta Solucionar problemas de instalación y conexión.
Error de inicio de sesión
Para SQLSTATE 28000, discrepancias en el modo de autenticación, credenciales inválidas y usuarios ausentes de bases de datos, consulte Solucionar problemas de instalación y conexión.
Tiempo de espera de conexión
Para SQLSTATE HYT00 o HYT01, latencia de red, servidores lentos y ajustes de tiempo de espera, consulta Solucionar problemas de instalación y conexión.
Errores de certificado SSL
Para errores de certificado no confiables y opciones seguras de desarrollo local, consulte Solucionar problemas de instalación y conexión.
Problemas de ejecución de consultas
Tabla u objeto no encontrado
Para comprobaciones de SQLSTATE 42S02, contexto de base de datos, calificación de esquema y existencia de tablas, consulte Resolver problemas de consulta, datos y operación.
Error de sintaxis
Para SQLSTATE 42000, sintaxis SQL, escape de cadenas y consultas parametrizadas, consulta Solucionar problemas de consulta, datos y operaciones.
Errores de parámetros
Para consultar SQLSTATE 07001, el número de marcadores de posición y los estilos de parámetros compatibles, véase Solucionar problemas de consultas, datos y operaciones.
Problemas con el tipo de datos
Errores de conversión de fecha y hora
Para SQLSTATE 22007 y la conversión de parámetros de fecha y hora, consulte Solucionar problemas de consultas, datos y operaciones.
Problemas de precisión decimal
Para valores decimales truncados o redondeados, consulte Problemas de consulta, datos y operación.
Problemas de codificación Unicode
Para caracteres especiales distorsionados y tipos de columnas Unicode, véase Solucionar problemas de consulta, datos y operaciones.
Problemas de rendimiento
Ejecución lenta de consultas
Para indexación, grandes conjuntos de resultados y agrupación de conexiones, consulte Solucionar problemas de consulta, datos y operaciones.
Problemas de memoria con resultados grandes
Para transmitir y paginar grandes conjuntos de resultados, consulte Solucionar problemas de consulta, datos y operación.
Problemas de transacciones
Alcance de tablas temporales con autocommit
Para las tablas temporales que desaparecen tras una reversión y las sentencias DDL que requieren confirmación automática, consulta Solucionar problemas de consultas, datos y operaciones.
Transacción no comprometida
Para los cambios de datos que no persisten tras el cierre de la conexión, consulta Resolver problemas de consulta, datos y operación.
Errores de interbloqueo
Para SQLSTATE 40001, instrucciones para reintentar y análisis de interbloqueos recurrentes, consulta Solucionar problemas de consultas, datos y operaciones.
Problemas de carga masiva
Infracciones de restricciones durante la copia masiva
Para violaciones de clave primaria, única, comprobación o clave externa durante copias masivas, consulte Resolución de problemas de consulta, datos y operación.
Errores de mapeo de columnas
Para las discordancias entre el número de columnas y el orden de las columnas en la copia masiva, consulte Solucionar problemas relacionados con consultas, datos y operaciones.
Desajustes de tipo durante la copia en bloque
Para valores truncados, redondeados o incorrectos tras una copia masiva, consulte Problemas de consulta, datos y operación.
Errores de vinculación de tipos de NumPy
Para errores al enlazar parámetros con tipos enteros o de coma flotante de NumPy, consulte Solucionar problemas de consultas, datos y operaciones.
Bulkcopy con tablas temporales
Para obtener información sobre los errores Invalid object name al usar bulkcopy() con una tabla temporal de la sesión, consulta Solucionar problemas de consulta, datos y operaciones.
Problemas de contenedores y CI
Bibliotecas del sistema ausentes en Linux
Si faltan las bibliotecas libltdl o Kerberos en entornos Linux, consulta Solucionar problemas de instalación y conexión.
Errores SSL de macOS tras la instalación
Para errores relacionados con SSL en macOS, incluido Apple Silicon, consulta Solucionar problemas de instalación y conexión.
Herramientas de diagnóstico
Habilitar el registro del controlador
Utilice mssql_python.setup_logging() para habilitar el registro DEBUG. El controlador registra sentencias SQL, parámetros, operaciones ODBC internas y cambios en el estado de la conexión.
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")
Los archivos de registro utilizan formato CSV y rotan automáticamente a 512 MB con cinco copias de seguridad. El controlador desinfecta datos sensibles como contraseñas y tokens de acceso en la salida de registro.
Para añadir entradas de la aplicación al registro del controlador, utilice 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")
Caution
El registro supone una sobrecarga de rendimiento. Actívalo solo cuando soluciones un problema. No lo actives en producción por defecto.
Obtener información del conductor
Recupera la versión del controlador y los detalles del servidor de una conexión activa:
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)}")
Comprobación del estado de conexión
Ejecuta una consulta ligera para comprobar si una conexión sigue abierta:
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")
Referencia rápida: Errores comunes
| Error | SQLSTATE | Causa común | Troubleshooting |
|---|---|---|---|
| El cliente no puede establecer la conexión | 08001 |
Servidor inaccesible | No se puede conectar al servidor |
| Error de inicio de sesión | 28000 |
Credenciales incorrectas | Inicio de sesión fallido |
| Se ha agotado el tiempo de espera |
HYT00 o HYT01 |
Red lenta | Tiempo de espera de la conexión |
| Nombre de objeto no válido. | 42S02 |
Tabla o esquema incorrecto | Tabla u objeto no encontrado |
| Error de sintaxis | 42000 |
Error de SQL | Error de sintaxis |
| Infracción de restricción | 23000 |
Violación de clave foránea o clave primaria | Violaciones de restricciones durante la copia a volumen |
| Deadlock | 40001 |
Contención de bloqueo | Errores de bloqueo |