You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Vagrant部署CKAN 2.10.1时执行solr create命令遭遇Connection refused错误

Vagrant部署CKAN 2.10.1时执行solr create命令遭遇Connection refused错误

遇到这个连接拒绝的问题,我之前部署CKAN时也踩过类似的坑,咱们一步步来排查解决:

1. 先确认Solr服务是否真的启动成功

连接拒绝最常见的原因就是Solr根本没正常跑起来,先在Vagrant虚拟机里执行命令检查服务状态:

systemctl status solr

如果显示inactive或者failed,先手动尝试启动服务:

systemctl start solr

要是启动失败,一定要去看日志找具体原因:

# 查看系统层面的Solr服务日志
journalctl -u solr
# 或者直接查看Solr自身的日志文件
cat /var/solr/logs/solr.log

日志里通常会明确提示问题,比如端口被占用、目录权限不足、配置文件错误这类关键信息。

2. 检查Solr的监听地址和端口

有时候Solr可能只绑定了特定IP,导致localhost无法连接。用下面的命令查看端口监听情况:

ss -tulpn | grep 8983

如果输出里的监听地址是127.0.0.1那没问题,但如果是虚拟机的内网IP或者其他特定地址,就需要修改Solr的配置:
编辑/etc/default/solr.in.sh文件,找到SOLR_OPTS配置项,添加监听所有地址的参数:

SOLR_OPTS="$SOLR_OPTS -Djetty.host=0.0.0.0"

保存后重启Solr服务,再尝试连接。

3. 排查目录权限问题

你怀疑的权限问题确实有可能,先检查Solr核心目录的所有者是否正确:

ls -ld /opt/solr /var/solr

如果这些目录的所有者不是solr:solr,就用命令修正权限:

chown -R solr:solr /opt/solr /var/solr

另外,试试直接切换到solr用户执行创建命令,避免sudo带来的环境变量缺失问题:

su - solr
/opt/solr/bin/solr create -c ckan

如果这样能成功,说明之前的sudo命令可能丢失了solr用户的部分环境变量。

4. 彻底清理后重新安装Solr

如果上面的方法都没用,建议彻底清理现有Solr环境后重新安装:

  1. 停止并卸载现有Solr:
systemctl stop solr
apt remove --purge solr*
rm -rf /opt/solr /var/solr /etc/default/solr.in.sh
  1. 以root身份重新运行官方的安装脚本:
sudo bash ./install_solr_service.sh solr-8.11.2.tgz

安装完成后别急着创建core,等2-3分钟让Solr完全启动,再执行创建命令。

5. 验证虚拟机内部网络连通性

最后确认虚拟机内部的网络是否正常,用telnet测试端口是否开放:

telnet localhost 8983

如果连接失败,说明端口确实没被监听,回到前面的步骤重新排查服务启动和监听配置。

备注:内容来源于stack exchange,提问作者Gabriel Braico Dornas

火山引擎 最新活动