我有一个有两个networking接口的服务器。 Cassandra正在eth1上侦听专用的内部数据库networking(不能从外部访问)。 所以我这样做我的隧道:
ssh -f -N -L9161:192.XXX.XXX.200:9160 [email protected] -P 9922
其中XXX是内部数据库networking,YYY是ssh正在侦听的networking。 当我尝试cqlsh localhost 9161我得到follwingexception:
Connection error: ('Unable to connect to any servers', {'localhost': ConnectionShutdown('Connection <AsyncoreConnection(139691023521360) localhost:9161 (closed)> is already closed',)})
但是当我telnet本地主机9161我成功了一个telnetshell。 当然cassandra正在运行。
任何想法如何让我的隧道工作?
我遇到了同样的问题,最终看起来像cqlsh 5.0.1(与Cassandra 2.1.4,从他们的官方APT仓库安装)和我们旧的Cassandra 2.0.14节点(DataStax附带)之间不兼容。
临时降级到与datastax捆绑在一起的cqlsh 4.1解决了这个问题。
您需要代理端口9160(Cassandra客户端端口)和端口9042(CQL本地端口)。 要么运行两个terminal,要么使ssh客户端使用这些标志去背景:
ssh -f -N -q -L 9042:192.XXX.XXX.200:9042 [email protected] -P 9922 ssh -f -N -q -L 9160:192.XXX.XXX.200:9160 [email protected] -P 9922
现在你应该可以在localhost的默认端口上连接cqlsh。 本地主机也是默认主机。
cqlsh -u [username] -p [password]