> ## Documentation Index
> Fetch the complete documentation index at: https://ngquct-docs-fix-500-query-results.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Cassandra / ScyllaDB

> Connect to Cassandra and ScyllaDB clusters, browse keyspaces, and run CQL queries

export const name_0 = "Cassandra"

export const plugin_0 = "Cassandra Driver"

Cassandra 3.0 is the floor here, and 2.x will not connect. The driver reads its schema from `system_schema`, which 2.x does not have. ScyllaDB is a separate entry in the database type list but the same driver, over the same CQL native protocol.

## Quick setup

Click **Create Connection…**, select **Cassandra** or **ScyllaDB**, enter host, port, and credentials, and connect.

The {name_0} driver is not in the app. Picking {name_0} in the **Choose a Database** sheet offers the
download before the form opens, and opening a saved {name_0} connection installs it without asking.
**Settings > Plugins > Browse > {plugin_0}** installs it up front. See [Plugins](/features/plugins).

## Connection settings

| Field        | Default     | Notes                                               |
| ------------ | ----------- | --------------------------------------------------- |
| **Host**     | `localhost` | CQL contact point                                   |
| **Port**     | `9042`      | CQL native port                                     |
| **Username** | -           | Only if the cluster has an authenticator configured |
| **Password** | -           |                                                     |

There is no Keyspace field. Pick one in the sidebar after connecting, or put it in the URL path and import that URL. Later switches happen in place, with no reconnect, and the system keyspaces are filtered out of the list. Tabs already open are bound to their own keyspace and do not follow. See [Tabs](/features/tabs#where-a-tab-points).

There is no consistency level field either. The driver never sets one, so every statement runs at the DataStax C driver's default of `LOCAL_ONE`.

## Connection URLs

```text theme={null}
cassandra://user:password@host:9042/keyspace
scylladb://user:password@host:9042/keyspace
```

`cql://` and `scylla://` work too. See [Connection URL Reference](/connections/urls).

## Amazon Keyspaces

Keyspaces authenticates with SigV4, not a password, so set **Authentication** to an AWS IAM mode and leave Username and Password empty.

<Steps>
  <Step title="Point at the regional endpoint">
    Host `cassandra.{region}.amazonaws.com`, port `9142`.
  </Step>

  <Step title="Pick an IAM mode and enter the region">
    Access Key, Profile, or SSO. Profiles resolve from `~/.aws/config` and `~/.aws/credentials`, including `credential_process` and assumed roles.
  </Step>

  <Step title="Turn TLS on">
    Keyspaces refuses a plaintext connection. See [AWS IAM Authentication](/connections/aws-iam).
  </Step>
</Steps>

## Browsing and editing

<Frame caption="Keyspace tables in the sidebar with the data grid">
  <img className="block dark:hidden" src="https://mintcdn.com/ngquct-docs-fix-500-query-results/hA72m8tSnRe3b-ew/images/cassandra-keyspace-browser.png?fit=max&auto=format&n=hA72m8tSnRe3b-ew&q=85&s=d6b95652ba06443922d85d9d51f8b350" alt="Cassandra keyspace and tables in the sidebar with table data in the grid" width="1560" height="960" data-path="images/cassandra-keyspace-browser.png" />

  <img className="hidden dark:block" src="https://mintcdn.com/ngquct-docs-fix-500-query-results/hA72m8tSnRe3b-ew/images/cassandra-keyspace-browser-dark.png?fit=max&auto=format&n=hA72m8tSnRe3b-ew&q=85&s=040c891905b196a87eb94f08fc053c75" alt="Cassandra keyspace and tables in the sidebar with table data in the grid" width="1560" height="960" data-path="images/cassandra-keyspace-browser-dark.png" />
</Frame>

The structure view gives each column's name, CQL type, a primary key flag set for partition key and clustering columns alike, and the table's secondary indexes. Structure editing adds and drops columns; every other schema change goes in the CQL editor. In the grid, map, set, list, and tuple render as collections and blob as hex.

Row counts stop at 100,001. Cassandra has no cheap count, so the driver runs `SELECT COUNT(*) … LIMIT 100001` and a larger table reports that ceiling.

## SSL/TLS

The default is **Disabled**, and there is no opportunistic TLS here, so **Preferred** behaves exactly like **Required**.

| Mode                        | Verifies                                   |
| --------------------------- | ------------------------------------------ |
| **Preferred**, **Required** | Nothing. Encryption only                   |
| **Verify CA**               | The chain, against the PEM file you supply |
| **Verify Identity**         | The chain and the hostname                 |

Both verifying modes need a **CA Certificate** path, and refuse to connect without one rather than falling back to the system roots. For mutual TLS set the client certificate and key paths, with the key's passphrase in **Key Passphrase**. See [SSL/TLS](/connections/ssl).

## Limitations

* Counter columns cannot be set with a plain `UPDATE`. The grid will edit one and the server rejects the statement it generates. Use `UPDATE … SET c = c + 1` in the CQL editor.
* Materialized views, UDTs, UDFs, and UDAs do not appear in the sidebar. Query `system_schema` in the CQL editor to see them.
* The DDL tab reconstructs `CREATE TABLE` from the column list, so table options (compaction, compression, `gc_grace_seconds`), clustering order, and the split between partition and clustering key are all missing from it. Read the real definition with `DESCRIBE TABLE` in `cqlsh`.
* DataStax Astra DB does not connect. The Secure Connect Bundle it requires cannot be loaded, and there is no way around it.
* Connect and request timeouts are fixed at 10 and 30 seconds. Neither the app-wide query timeout nor a multi-DC policy reaches this driver.

## Troubleshooting

**Connection refused**: Check Cassandra is running with `nodetool status`, that port 9042 matches `cassandra.yaml`, and that `rpc_address` and `listen_address` are reachable from your Mac.

**Authentication fails**: Verify the credentials and check `authenticator: PasswordAuthenticator` in `cassandra.yaml`. The default superuser is `cassandra` / `cassandra`.

**Read timeout**: Put the full partition key in the `WHERE` clause, add a `LIMIT`, and check cluster health with `nodetool`.
