百思不得其解的 MongoDB 问题:服务正常,但连接不上 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hvboekml
V2EX    MongoDB

百思不得其解的 MongoDB 问题:服务正常,但连接不上

  •  
  •   hvboekml 2021-09-17 10:17:54 +08:00 7527 次点击
    这是一个创建于 1487 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我有个网站用的是 MongoDB 数据库,搞不懂的地方在于网站正常,但是 mongo 连不上。

    最近没动过配置,不敢贸然重启服务,求教下各位

    第 1 条附言    2021-09-18 08:38:52 +08:00
    感谢各位,重启服务后解决了
    25 条回复    2021-09-17 20:22:31 +08:00
    Jooooooooo
        1
    Jooooooooo  
       2021-09-17 10:29:53 +08:00   1
    网站正常说明 db 没问题, 那就是你的链接方式有问题

    看下是不是密码 /端口写错了, client 不兼容之类的
    hvboekml
        2
    hvboekml  
    OP
       2021-09-17 10:33:11 +08:00
    @Jooooooooo 早前是正常的
    ElmerZhang
        3
    ElmerZhang  
       2021-09-17 10:46:24 +08:00   1
    用什么连的?软件还是命令行的 mongo ?
    mongo 部署在哪里?你是从哪里连过去的?家里还是同一内网中的服务器?
    是报错还是卡住不动?报错的话把错误信息贴一下。
    qinxi
        4
    qinxi  
       2021-09-17 11:02:46 +08:00   1
    原本正常,现在不行,如果没动数据库配置和代码连接配置的话, 先看看防火墙?
    hvboekml
        5
    hvboekml  
    OP
       2021-09-17 11:09:29 +08:00
    @ElmerZhang
    @qinxi

    ```
    # bindIp: 127.0.0.1

    $ mongo
    MongoDB shell version v4.4.4
    connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
    ```
    用 `mongo` 卡住不动,用 `mongodump` 的话报错 `Failed: can't create session: could not connect to server: server selection error: server selection timeout, current topology`
    hvboekml
        6
    hvboekml  
    OP
       2021-09-17 11:13:18 +08:00
    `mongodump` 报错:Failed: can't create session: could not connect to server: server selection error: server selection timeout, current topology: { Type: Single, Servers: [{ Addr: 127.0.0.1:27017, Type: Unknown, State: Connected, Average RTT: 0, Last error: connection() : connection(127.0.0.1:27017[-13]) incomplete read of message header: read tcp 127.0.0.1:54658->127.0.0.1:27017: i/o timeout }, ] }
    fkdtz
        7
    fkdtz  
       2021-09-17 11:52:23 +08:00   1
    端口允许外网连接么,看看防火墙安全组之类的
    ila
        8
    ila  
       2021-09-17 12:05:29 +08:00 via Android   1
    在 docker 容器内吗
    cathiabi
        9
    cathiabi  
       2021-09-17 12:26:50 +08:00 via Android   1
    之前 mysql 遇到类似问题,后来发现需要用 root 权限运行客户端。安全升级的缘故只让用 socket 连。。。
    hvboekml
        10
    hvboekml  
    OP
       2021-09-17 14:24:17 +08:00
    @fkdtz
    @ila
    @cathiabi 本地连的,不是 docker,试了 sudo 一样,前几天是正常的
    ElmerZhang
        11
    ElmerZhang  
       2021-09-17 15:08:36 +08:00   1
    @hvboekml
    卡住的话首先怀疑是防火墙,但是你连的是 127.0.0.1,可以排除防火墙的原因。
    `sudo netstat -nltp` 看下端口是否正常,不过你没有报 'Connection refused' 八成是开着的。

    连接的时候 tail 一下 mongodb 日志和系统日志( /var/log/syslog 或者 /var/log/message ),看看有没有什么 warning, error 之类的日志吧。
    ila
        12
    ila  
       2021-09-17 15:42:33 +08:00   1
    关闭掉 mongo server,在 27017 端口开启个 web 服务,能访问,排除了端口映射。
    mongo 能够进入 mongodb 的 shell 。排除了 mongodb 的问题。

    接下来可以锁定是网络配置了。
    你在 host 这栏填写主机名,非 ip 名。
    如果可以进入,那就是这个问题了。
    hvboekml
        13
    hvboekml  
    OP
       2021-09-17 15:51:36 +08:00
    @ElmerZhang /var/log/syslog 没看到有报错,mongodb 的日志停留在几天前,停留的那天,我部署了基于 redis 的频率限制,我在想,难道是系统问题
    cathiabi
        14
    cathiabi  
       2021-09-17 15:55:42 +08:00   1
    @hvboekml 用 telnet 连一下 27017 端口看看通不通,如果不通的话,服务是否有正常运行呢?网站正常的话不会是因为缓存了吧。
    cathiabi
        15
    cathiabi  
       2021-09-17 15:57:22 +08:00   1
    还有一个很罕见的问题是 lo 本地回环有问题
    hvboekml
        16
    hvboekml  
    OP
       2021-09-17 15:57:54 +08:00
    @ila 似乎只能重启了,准备今晚试试
    ElmerZhang
        17
    ElmerZhang  
       2021-09-17 15:59:22 +08:00   1
    @hvboekml
    `sudo netstat -nltp` 还是看一下端口吧
    `ps aux | grep mongod` 看一下进程状态
    ila
        18
    ila  
       2021-09-17 16:01:55 +08:00   1
    @hvboekml 你试了连接这个吗?
    mongodb://<服务器主机名>:27017
    hvboekml
        19
    hvboekml  
    OP
       2021-09-17 16:04:39 +08:00
    @cathiabi 网站试了可以读写
    ```
    $ telnet 127.0.0.1 27017
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    ```
    hvboekml
        20
    hvboekml  
    OP
       2021-09-17 16:11:02 +08:00
    @ElmerZhang
    ```
    $ sudo netstat -nltp
    tcp 2088 0 127.0.0.1:27017 0.0.0.0:* LISTEN 3204/mongod

    $ ps aux | grep mongod
    mongodb 3204 0.5 13.2 2073556 532464 ? Ssl Mar22 1412:17 /usr/bin/mongod --config /etc/mongod.conf
    ```
    hvboekml
        21
    hvboekml  
    OP
       2021-09-17 16:33:08 +08:00
    @ila 试了 mongo,一样
    ElmerZhang
        22
    ElmerZhang  
       2021-09-17 16:36:18 +08:00   1
    @hvboekml
    我记得 mongo 连上 mongod 之后,会先执行一些初始化 shell 的命令,比如 listDb 之类的,很可能是卡在这里了。
    你会不会写脚本?用 nodejs/php/python 之类的写个简单的连接脚本,看能不能连上去。
    如果能连上去的话,给脚本中加一个 currentOp 的输出。然后执行 mongo 去连接,趁它卡住时,执行一下脚本看看当前都有什么 op 在执行。
    cathiabi
        23
    cathiabi  
       2021-09-17 16:56:03 +08:00   1
    python2,确认装了 pymongo,执行这几条看看

    from pymongo import MongoClient
    client = MongoClient(host="127.0.0.1")
    db = client.mydb
    print db.current_op(True)
    vanlink
        24
    vanlink  
       2021-09-17 19:11:22 +08:00   1
    查查防火墙,wireshark 抓包看看
    hvboekml
        25
    hvboekml  
    OP
       2021-09-17 20:22:31 +08:00
    @ElmerZhang
    @cathiabi
    @vanlink
    `Server selection timed out after 30000 ms`
    感觉免不了要中断服务,我准备先试下关掉新功能
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1152 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 17:50 PVG 01:50 LAX 10:50 JFK 13:50
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86