本地创建Solr Core失败报错ERROR: Connection reset,求助解决方法
解决Solr 8.2在OSX 10.13.5上创建Core时的Connection reset错误
我之前在OSX上折腾Solr的时候也碰到过类似的连接重置问题,结合Solr 8.x的特性和OSX的环境,给你几个实用的排查和修复步骤:
1. 确认Solr的监听配置是否正常
先检查Solr的绑定地址是否和终端请求的一致:
- 执行
bin/solr status,看看输出里的Solr实例地址是不是http://localhost:8983,和你浏览器访问的地址匹配。 - 打开
bin/solr.in.sh配置文件,找到SOLR_HOST参数,确保它设置为localhost(或者你的机器能正常解析的本地地址)。如果之前改过这个参数,改回localhost试试。
2. 调整Java内存分配(最常见的原因)
OSX上Solr默认的Java堆内存可能不够,导致处理创建Core的请求时崩溃,进而出现连接重置:
- 编辑
bin/solr.in.sh,找到SOLR_HEAP这一行,把它改成SOLR_HEAP="1g"(如果你的机器内存够,2g也可以,最少别低于512m)。 - 重启Solr:先执行
bin/solr stop -all,等待完全停止后再用bin/solr start重新启动。 - 之后再尝试执行
bin/solr create -c test。
3. 手动创建Core绕开命令行问题
如果命令行的create命令一直报错,试试手动创建Core,步骤很简单:
- 进入Solr安装目录下的
server/solr文件夹,新建一个名为test的文件夹。 - 复制
server/solr/configsets/_default/conf目录下的所有文件,粘贴到刚才新建的test/conf文件夹里。 - 打开浏览器的Solr控制台(http://localhost:8983),点击左侧菜单的「Core Admin」,然后点击「Add Core」:
- Name填
test - InstanceDir填
test - 其他参数保持默认,点击「Add」就能完成创建。
- Name填
4. 排查防火墙和本地网络拦截
虽然浏览器能访问,但OSX的防火墙偶尔会拦截终端发起的本地请求:
- 打开系统偏好设置 → 安全与隐私 → 防火墙,临时关闭防火墙,然后再执行创建Core的命令试试。如果成功了,再把防火墙打开,给Solr添加允许通过防火墙的权限。
5. 查看Solr日志找根本原因
如果上面的方法都不行,去看Solr的日志文件找线索:
- 日志文件在Solr安装目录的
server/logs下,重点看solr.log和solr-8.2.0-console.log。 - 在你执行create命令报错的时间段,看看日志里有没有内存溢出(OOM)、权限错误或者其他异常信息,这些能帮你精准定位问题。
内容的提问来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

