Win10安装Cassandra运行cqlsh报Unable to connect to any servers错误
Windows 10运行Cassandra cqlsh报127.0.0.1:9042连接被拒绝(错误10061)解决方案
这个错误的核心原因是Cassandra服务未正常完成启动,没有在9042端口开启监听,和cqlsh客户端本身无关,按以下步骤逐一排查修复:
- 先确认Cassandra真实启动状态
运行cassandra.bat启动服务时,不要看到窗口弹出就立刻运行cqlsh,必须等启动日志滚动到出现Startup complete字样,才算启动完成。
可以开一个新的cmd窗口执行netstat -ano | findstr "9042"做验证,如果命令返回空结果,说明服务根本没启动成功,不用排查cqlsh的连接配置。 - 修复高频启动失败问题
- 安装路径不符合要求:Cassandra不识别带空格、中文、特殊字符的路径,如果你把它装在
C:\Program Files\这类带空格的目录,或者路径含中文,会直接启动失败。把整个Cassandra文件夹挪到根目录下纯英文无空格的路径(比如C:\cassandra),同步更新系统环境变量里的CASSANDRA_HOME指向新路径后重启服务即可。 - Java版本不兼容:4.0及以上版本的Cassandra仅支持Java 8、Java 11,如果你本地装的是Java 17、21等高版本JDK,服务会静默启动失败。要么更换为兼容版本的JDK,要么确认环境变量
JAVA_HOME指向的是兼容版本,不要用系统默认预装的高版本OpenJDK。 - 目录权限不足:Cassandra默认会把数据、日志存在
C:\var\lib\cassandra、C:\var\log\cassandra路径下,如果当前Windows账号没有这两个目录的读写权限,启动会直接卡住。可以手动给这两个目录开放当前用户的完全控制权限,也可以修改conf/cassandra.yaml里的data_file_directories、commitlog_directory、saved_caches_directory配置项,把存储路径改到非系统盘、你有完整权限的目录下。
- 安装路径不符合要求:Cassandra不识别带空格、中文、特殊字符的路径,如果你把它装在
- 核对监听配置
打开conf/cassandra.yaml文件,确认以下配置项参数正确:listen_address: 127.0.0.1,不要留空,不要随意改成其他内网地址rpc_address: 127.0.0.1native_transport_port: 9042,如果这个端口被其他程序占用,要么关闭占用程序,要么把端口改成其他空闲值,后续运行cqlsh时用cqlsh 127.0.0.1 自定义端口指定端口连接即可。
- 正确启动连接流程
保持运行cassandra.bat的cmd窗口不要关闭(关了服务会直接停止),等日志出现Startup complete提示后,再新开一个cmd窗口进入bin目录运行cqlsh即可。
注意:尽量不要用PowerShell运行cqlsh,cqlsh基于Python实现,PowerShell默认的编码、路径解析逻辑容易出兼容问题,优先用系统自带的cmd命令提示符执行相关操作。
内容的提问来源于stack exchange,提问作者Sanket Goti
相关产品推荐
相关产品推荐

