command with database "fecshop": Failed to read 4 bytes: socket error or timeout 执行 sh fullSearchSync.sh 报mongo超时异常

安装报错 · youzhanghao · 于 5年前 发布 · 6339 次阅读
  • kind: bug ?
  • what happened: 执行 sh fullSearchSync.sh 报mongo超时异常
  • How to reproduce it (as minimally and precisely as possible): 按文档说明操作,最后一步超时

报错信息:

root@aa2ba846c544:/www/web/fecshop/vendor/fancyecommerce/fecshop/shell/search# sh fullSearchSync.sh
Exception 'yii\mongodb\Exception' with message 'Failed to send "createIndexes" command with database "fecshop": Failed to read 4 bytes: socket error or timeout'

in /www/web/fecshop/vendor/yiisoft/yii2-mongodb/src/Command.php:192

Stack trace:
#0 /www/web/fecshop/vendor/yiisoft/yii2-mongodb/src/Command.php(357): yii\mongodb\Command->execute()
#1 /www/web/fecshop/vendor/yiisoft/yii2-mongodb/src/Collection.php(153): yii\mongodb\Command->createIndexes('full_search_pro...', Array)
#2 /www/web/fecshop/vendor/fancyecommerce/fecshop/services/search/MongoSearch.php(80): yii\mongodb\Collection->createIndex(Array, Array)
#3 [internal function]: fecshop\services\search\MongoSearch->actionInitFullSearchIndex()
#4 /www/web/fecshop/vendor/fancyecommerce/fecshop/services/Service.php(49): call_user_func_array(Array, Array)
#5 /www/web/fecshop/vendor/fancyecommerce/fecshop/services/Search.php(47): fecshop\services\Service->__call('initFullSearchI...', Array)
#6 [internal function]: fecshop\services\Search->actionInitFullSearchIndex()
#7 /www/web/fecshop/vendor/fancyecommerce/fecshop/services/Service.php(49): call_user_func_array(Array, Array)
#8 /www/web/fecshop/vendor/fancyecommerce/fecshop/app/console/modules/Product/controllers/SearchController.php(33): fecshop\services\Service->__call('initFullSearchI...', Array)
#9 [internal function]: fecshop\app\console\modules\Product\controllers\SearchController->actionInitindex()
#10 /www/web/fecshop/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)
#11 /www/web/fecshop/vendor/yiisoft/yii2/base/Controller.php(157): yii\base\InlineAction->runWithParams(Array)
#12 /www/web/fecshop/vendor/yiisoft/yii2/console/Controller.php(148): yii\base\Controller->runAction('initindex', Array)
#13 /www/web/fecshop/vendor/yiisoft/yii2/base/Module.php(528): yii\console\Controller->runAction('initindex', Array)
#14 /www/web/fecshop/vendor/yiisoft/yii2/console/Application.php(180): yii\base\Module->runAction('product/search/...', Array)
#15 /www/web/fecshop/vendor/yiisoft/yii2/console/Application.php(147): yii\console\Application->runAction('product/search/...', Array)
#16 /www/web/fecshop/vendor/yiisoft/yii2/base/Application.php(386): yii\console\Application->handleRequest(Object(yii\console\Request))
#17 /www/web/fecshop/yii(82): yii\base\Application->run()
#18 {main}

mongo信息:

mongodb_1    | 2018-06-28T05:24:28.651+0000 I NETWORK  [listener] connection accepted from 172.20.0.6:59760 #7 (4 connections now open)
mongodb_1    | 2018-06-28T05:24:28.652+0000 I NETWORK  [conn7] end connection 172.20.0.6:59760 (3 connections now open)
mongodb_1    | 2018-06-28T05:24:29.219+0000 I NETWORK  [listener] connection accepted from 172.20.0.6:59762 #8 (4 connections now open)
mongodb_1    | 2018-06-28T05:24:29.219+0000 I NETWORK  [conn8] received client metadata from 172.20.0.6:59762 conn8: { driver: { name: "mongoc / ext-mongodb:PHP", version: "1.11.0 / 1.5.0" }, os: { type: "Linux", name: "Debian GNU/Linux", version: "8", architecture: "x86_64" }, platform: "cfg=0xd15620c9 posix=200809 CC=GCC 4.9.2 CFLAGS="-g -O2" LDFLAGS="" / PHP 7.1.13" }
共收到 6 条回复
Fecmall#15年前 0 个赞

不清楚报错原因,看报错是mongo连接的问题,自己搜索解决吧

https://stackoverflow.com/questions/49924601/mongolite-error-failed-to-read-4-bytes-socket-error-or-timeout

docker安装有视频,核对下视频操作吧。

Fecmall#25年前 0 个赞

发帖说明仔细看:http://www.fecshop.com/topic/624

新手第一次安装可以使用docker,按照视频安装。

youzhanghao#35年前 0 个赞

临时解决

  1. Mac系统采用sudo运行,解决yml文件中暴露80端口无权限问题,yml文件nginx端口 80:80
  2. 重新执行sudo docker-compose up

临时解决,未知根由

Fecmall#45年前 0 个赞

你用的不是root账户吧?

youzhanghao#55年前 0 个赞

@Fecshop #4楼 Mac默认非超级管理员,禁止绑定80端口,我所使用的账号非root账号,故需要加sudo执行。 但奇怪在为什么暴露8080端口会出现问题,等理一理数据流看看。

Fecmall#65年前 0 个赞

@youzhanghao #5楼 有一些操作,需要root权限,我的操作是用的linux shell root

你还是把这些操作前面都加上sudo吧, 加上就相当于有了root的权限

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics