昨天晚上闲着没事,想着把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 hostname
, domain
, 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.
这尼码,必须指定:hostname
, domain
, and top-level domain (TLD)
我也没配置啊,还是乖乖改成标准模式吧。
export DB_URL=mongodb://admin:******@127.0.0.1:27017/moe
然后就ok啦:
25 comments
有时候折腾这些东西真的头大,但是有些bug确实又不是大问题
是的,但是这种感觉照着官方文档抄的应该不会出错。
但是,如果不仔细去读原始文档永远不会找到问题是出在什么地方。
这才是让人抑郁的,刚开始没看mongodb的原始文档,使用觉得带srv没问题,又一通配置一通改,都是瞎折腾,也解决不了问题。
已经用上了 :https://github.com/dongyubin
当然是欢迎啊,需要改基数吗?
你这个图片链接怎么这么长?
我也不清楚,好像是自动解析出来的
还有这种事情,神奇~~
发现个bug,这个浏览器保存个人信息的问题,打钩了没记住我这信息
酱紫 不科学啊 等我找时间研究下
我觉得应该是cdn的问题
试了下chrome浏览器木有问题啊
哦哦。的确有问题,哈哈哈。
再打开就没了
貌似不是cdn的问题,litespeed cache导致的,关闭了。再试试~~我刚用不同浏览器试了貌似ok了。
对我来说折腾的最终结果就是,差不多就行,能用就行,实在是解决不了的就直接不用。hhhh
不行 忍不了 。主要是我觉得这种智障问题我能解决。
那种我一看就不会的,我就放弃了 哈哈哈
技术分享很实在,就是电梯之类地方怕打开你网站,怕社死,哈哈哈
不会哒 可以邀请加入 一起看啊
哈哈,无折腾不生活。
人生就这么点点乐趣啦
现在评论邮件正常了,只有一封了。
那可能是阿里邮件推送的问题,因为我看发送日志 。只有一条。
保存用户信息测试
保存用户信息测试
Docker解决一切啊!
有时候并不想用docker,嘎嘎