由srv引发的智障bug

昨天晚上闲着没事,想着把moe counter的数据库从sqlite换成mongodb。最开始的安装还算顺利,找个教程照着也就装上了,不过比较坑爹的是按照教程的方法安装libssl之后还是提示错误,最终通过命令行提示的sudo apt –fix-broken install 解决了这个问题。

由于之前没有用过mongodb的数据库,随便学了一点命令,创建账号,创建数据库,授权权限。

use admin

db.createUser({user:'admin',pwd:'*******',roles:[{role:'dbOwner',db:'moe'}]});

修改配置文件:

security:
  authorization: enabled

需要注意的是这个配置文件和python一样,是按照缩进识别的,如果改的缩进不一样就识别不了了。改完配置文件服务启动不了,看了半天错误日志才发现。

修改完之后,通过navicat能连上数据库,也能修改数据,但是通过配置文件却连不上,各种报错:

https://github.com/journey-ad/Moe-Counter

官方的配置文件说明:

export DB_URL=mongodb+srv://account:passwd@***.***.***.mongodb.net/db_count

于是,我照着抄了一个:

export DB_URL=mongodb+srv://admin:*****@127.0.0.1/moe

结果发现死活连不上数据库,直到翻了官方的文档(https://www.mongodb.com/docs/manual/reference/connection-string/)才发现,srv不能这么用:

When using the +srv format, you must specify the hostnamedomain, and top-level domain (TLD) in the following format: <hostname>.<domain>.<TLD>. This table shows how the placeholders correspond to example values:

Placeholder
Example
<hostname>
server
<domain>
example
<TLD>
com
<hostname>.<domain>.<TLD>
server.example.com

This example shows a DNS seed list connection string that correctly uses the <hostname>.<domain>.<TLD> format.

mongodb+srv://server.example.com/

The corresponding DNS configuration might resemble:

Record TTL Class Priority Weight Port Target
_mongodb._tcp.server.example.com. 86400 IN SRV 0 5 27317 mongodb1.example.com.
_mongodb._tcp.server.example.com. 86400 IN SRV 0 5 27017 mongodb2.example.com.

Individual SRV records must be in _mongodb._tcp.<hostname>.<domain>.<TLD> format.

这尼码,必须指定:hostnamedomain, and top-level domain (TLD)

我也没配置啊,还是乖乖改成标准模式吧。

export DB_URL=mongodb://admin:******@127.0.0.1:27017/moe

然后就ok啦:

 

 

☆版权☆

* 网站名称:obaby@mars
* 网址:https://obaby.org.cn/
* 个性:https://oba.by/
* 本文标题: 《由srv引发的智障bug》
* 本文链接:https://obaby.org.cn/2023/08/13026
* 短链接:https://oba.by/?p=13026
* 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。


You may also like

25 comments

  1. Level 4
    Microsoft Edge 116 Microsoft Edge 116 Windows 10 Windows 10 cn中国 中国移动

    有时候折腾这些东西真的头大,但是有些bug确实又不是大问题

    1. 公主 Queen 
      Google Chrome 114 Google Chrome 114 Mac OS X 10.15 Mac OS X 10.15 cn中国–山东–青岛 移动

      是的,但是这种感觉照着官方文档抄的应该不会出错。
      但是,如果不仔细去读原始文档永远不会找到问题是出在什么地方。
      这才是让人抑郁的,刚开始没看mongodb的原始文档,使用觉得带srv没问题,又一通配置一通改,都是瞎折腾,也解决不了问题。

  2.  Level 3
    Google Chrome 116 Google Chrome 116 Mac OS X 10.15 Mac OS X 10.15 cn中国–山东–青岛–胶州市 电信

    已经用上了 sarcastic:https://github.com/dongyubin

      1.  Level 3
        Google Chrome 116 Google Chrome 116 Mac OS X 10.15 Mac OS X 10.15 cn中国–山东–青岛–胶州市 电信

        我也不清楚,好像是自动解析出来的

          1.  Level 3
            Google Chrome 116 Google Chrome 116 Mac OS X 10.15 Mac OS X 10.15 cn中国–山东–青岛–胶州市 电信

            dance
            发现个bug,这个浏览器保存个人信息的问题,打钩了没记住我这信息

                1. 公主 Queen 
                  Google Chrome 114 Google Chrome 114 Windows 10 Windows 10 cn中国–山东–青岛 联通

                  哦哦。的确有问题,哈哈哈。
                  再打开就没了

                2. 公主 Queen 
                  Google Chrome 114 Google Chrome 114 Windows 10 Windows 10 cn中国–山东–青岛 联通

                  貌似不是cdn的问题,litespeed cache导致的,关闭了。再试试~~我刚用不同浏览器试了貌似ok了。

  3. Level 5
    Google Chrome 116 Google Chrome 116 Windows 10 Windows 10 us美国–华盛顿州–金–西雅图 Wowrack

    对我来说折腾的最终结果就是,差不多就行,能用就行,实在是解决不了的就直接不用。hhhh

    1. 公主 Queen 
      Google Chrome 114 Google Chrome 114 Android 10 Android 10 cn中国–山东–青岛 联通

      不行 忍不了 。主要是我觉得这种智障问题我能解决。
      那种我一看就不会的,我就放弃了 哈哈哈

  4. Level 1
    Google Chrome 117 Google Chrome 117 Windows 10 Windows 10 cn中国–广东–深圳 电信

    技术分享很实在,就是电梯之类地方怕打开你网站,怕社死,哈哈哈

    1. 公主 Queen 
      Google Chrome 114 Google Chrome 114 Android 10 Android 10 cn中国–山东–青岛 联通

      那可能是阿里邮件推送的问题,因为我看发送日志 。只有一条。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注