【发布时间】:2018-11-29 20:44:30
【问题描述】:
我已经在远程 Ubuntu 服务器上安装了 Apache Cassandra。如何允许远程访问 Apache Cassandra 数据库?以及如何建立联系?
【问题讨论】:
我已经在远程 Ubuntu 服务器上安装了 Apache Cassandra。如何允许远程访问 Apache Cassandra 数据库?以及如何建立联系?
【问题讨论】:
对 Cassandra 的远程访问是通过其节俭端口(尽管请注意 JMX 端口可用于执行一些有限的操作)。
thrift 端口在cassandra.yaml 中由rpc_port 参数定义,默认为9160。您的cassandra 节点应绑定到服务器网卡的IP 地址-不应为127.0.0.1 或@ 987654325@ 是环回接口的 IP,绑定到它会阻止直接远程访问。您可以在 cassandra.yaml 中使用 rpc_address 参数配置绑定地址。将此设置为 0.0.0.0 表示“侦听所有网络接口”,这可能适合您,也可能不适合您。
要建立连接,您可以使用:
【讨论】:
对于现在发现此问题的任何人,最佳答案已过时。
Apache Cassandra 的节俭接口已弃用,将在 Cassandra 4.0 中删除。默认客户端端口现在是 9042。
正如 Tyler Hobbs 所说,您需要确保 rpc_address 参数未设置为 127.0.0.1 或 localhost(默认为 localhost)。如果您将其设置为 0.0.0.0 以侦听所有接口,您还需要将 broadcast_rpc_address 设置为节点的公共或私有 IP 地址(取决于您计划如何连接到 Cassandra)
Cassandra-cli 也被弃用,Apollo 不再活跃。使用 cqlsh 代替 cassandra-cli 和 Java driver 代替 Apollo。
我不建议让 JMX 端口远程访问,除非您通过启用 SSL 和强身份验证secure it properly。
希望这有帮助。
【讨论】:
卡桑德拉 3.11.3
我做了以下工作来让我的工作。 cassandra.yaml 的变化:
start_rpc: true
rpc_address: 0.0.0.0
broadcast_rpc_address: ***.***.***.***
broadcast_rpc_address是安装cassandra的机器地址
seed_provider:
- class_name: ...
- seeds: "127.0.0.1, ***.***.***.***"
在种子中,我添加/附加了运行 cassandra 的机器的 IP 地址。
我使用 tableplus 从 Windows 访问它。在tableplus中我写了cassandra机器的ip地址,在端口部分我写了9042并使用了我用于ssh连接的用户名和密码。
【讨论】:
对于使用 Azure 的任何人,问题可能是您需要创建一个公共 ip 地址,因为虚拟 ip 指向云服务本身而不是虚拟机。你可以找到更多信息in this post
【讨论】: