sqlmapproject/sqlmap · error · SqlmapConnectionException
support for direct connection to
Error message
support for direct connection to '%s' is not available. Please rerun with '--dependencies'
What it means
Raised in setHandler() when initializing the direct DBMS connection (-d URL): neither a native database driver nor a SQLAlchemy dialect could be attached and the fallback connector does not cover the DBMS, so sqlmap refuses to proceed and points to the --dependencies switch.
Solutions
- Run 'sqlmap --dependencies' (or pip install) to install the third-party client libraries sqlmap needs
- Provide a fully supported direct-connection URL for a DBMS that sqlmap can handle
- Verify the DBMS name/credentials embedded in the -d connection string are correct
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at lib/controller/handler.py:183 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of sqlmapproject/sqlmap@0a35b20e39 (2026-08-26).
Data as JSON: /api/errors/a474862c49107005.
Report an issue: GitHub.
Appendix: source
Thrown at lib/controller/handler.py:183
conf.dbmsConnector = sqlalchemy
except Exception as ex:
exception = ex
if not dialect or exception:
try:
conf.dbmsConnector.connect()
except NameError:
# neither a native driver nor SQLAlchemy is available: fall back to our dependency-free
# pure-python 'dbwire' client if it covers this DBMS (so '-d' works out of the box)
if dbms in DBWIRE_MODULES:
conf.dbmsConnector = DbwireConnector(DBWIRE_MODULES[dbms])
conf.dbmsConnector.connect()
elif exception:
raise exception
else:
msg = "support for direct connection to '%s' is not available. " % dbms
msg += "Please rerun with '--dependencies'"
raise SqlmapConnectionException(msg)
except:
if exception:
singleTimeWarnMessage(getSafeExString(exception))
raise
if conf.forceDbms == dbms or handler.checkDbms():
if kb.resolutionDbms:
conf.dbmsHandler = max(_ for _ in items if _[0] == kb.resolutionDbms)[2]()
conf.dbmsHandler._dbms = kb.resolutionDbms
else:
conf.dbmsHandler = handler
conf.dbmsHandler._dbms = dbms
break
else:
conf.dbmsConnector = None
# At this point back-end DBMS is correctly fingerprinted, no needView on GitHub (pinned to 0a35b20e39)