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

  1. Run 'sqlmap --dependencies' (or pip install) to install the third-party client libraries sqlmap needs
  2. Provide a fully supported direct-connection URL for a DBMS that sqlmap can handle
  3. 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 need

View on GitHub (pinned to 0a35b20e39)