背景:
在企业安全中,比较基础的一块就是:资产漏洞管理;
巡风(关于巡风,点击此处了解)可以用来做这件事,当然某些地方需要根据自己实际情况修改、增加,这里不赘述;
其数据库为mongo;
在初步使用过程中,为了方便后续的开发,需要使用pycharm集成的mongo可视化插件,
这其中我们遇到了一些"不使用默认端口的坑"(大佬一笑而过。。。)
遇到两个问题:
1、无法shell连接数据库,mongo报错,
指定使用的端口也没用
2、pycharm的mongo插件无法连接,mechanism尝试default,报错如下,
看到支持的机制,那就尝试MONGODB-CR,这次报错不一样了:认证失败 ;但那里认证失败了呢,不知道。。。
解决:
1、首先搞清
mongo与mongod
要先启动mongod(有d的一般是守护进程,或服务本身),再mongo(连接服务)
2、发现巡风的数据库xunfeng配置时,指定了端口 65521,而不是默认的27017;
而巡风的配置文件Config.py里会写明,所以用巡风的脚本Run.sh启动时,完全没有问题;
但是,如果自己以shell方式要连接mongo时,如果以默认命令 mongo去连接就会报错,认证失败;
那么,就在在启动mongod的时候指定 端口65521来启动,
# mongod --port 65521 --dbpath=/var/lib/mongodb
(或更改mongod的配置文件,并# mongod --config /etc/mongodb.conf 以生效);
然后去连接mongo 127.0.0.1:65521/xunfeng
成功!
3、pycharm中安装mongo可视化插件时
会提示认证失败,一直找不到原因;
直到通过以上步骤shell连接上数据库,查看用户信息后才发现:
(你说坑不坑,错误提示里是没有的啊,为啥当时没有多试一个;))
在这里选择相应的方式
成功
这里记着要用使修改后的conf生效(但为啥:每次都要指定,或用配置文件启动 ),这样才会连接成功;
总结:
其实就是数据库的服务启动时的问题,
1、没有启动服务
2、在没有使用默认端口的情况下没有指定使用的端口,(配置文件里也没有写)
后续
启动mongod服务的,写在开机启动服务里,并在后台运行 就好;这样不用每次都手动启动
进入 /etc/rc.local
在最后写 启动mongod的命令
mongod --port 65521 --dbpath=/var/lib/mongodb &
(或更改mongod的配置文件,并# mongod --config /etc/mongodb.conf &);
注:
1、记得写 “空格 &” 以后台形式运行;不然会在启动的时候卡住
2、如果有exit 0,上述命令写在exit 0 的前面;(exit 0 表示退出当前脚本,后续命令不会执行)
有不对之处,望大家能交流、指正;
谢谢!