腾讯云上安装Mongodb踩坑
在ubuntu16.04上安装mongodb,我用了两天,焦头烂额,直到这一刻我才终于解决了【身心疲惫】
第一次安装
首先按照mongodb官网的文档一步步安装,安装好了
启动方式1:service mongod start 不行
启动方式2:mongod 不行,找不到dbpath=/data/db
查看/etc/mongod.conf
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
这种默认配置并没有起作用,程序还是自个去找/data/db
解决:在根目录下创建/data/db
然后程序就启动成功了
[initandlisten] waiting for connections on port 27017
但是!我再开一个服务器窗口时,输入mongo
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
2019-08-11T20:43:17.451+0800 E QUERY [js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:344:17
@(connect):2:6
exception: connect failed
由于这个错误,我开启了两天的艰苦探索
起先我是检查了防火墙,千真万确地开了27017的端口,奈何mongodb的进程也在运行,就是连不上。。。
wget安装
于是,折腾到今天早上,我觉得放弃它了,卸了,通过这种方式来安装。
之前一直看别人的教程,老一点的教程基本是线上下载或上传服务器taz软件包来安装。
这种方式可以指定安装目录,可以找到./bin文件的mongodb.exe来运行,跟windows上面安装的步骤很相似。说不定可以解决我一直连接不上的问题。
https://repo.mongodb.org/apt/ubuntu/dists/xenial/mongodb-org/4.0/multiverse/binary-amd64/mongodb-org-server_4.0.12_amd64.deb
下载完才发现,.deb,这可咋整?
sudo dpkg -i mongodb-org-server_4.0.10_amd64.deb
然后它就自动安装好了
启动:mongod 报错:找不到service
(这次默认路径还是/data/db,但是我之前建好了)
不停百度:最后通过
sudo mongod --repair
mongo报错
开启成功,再开一个服务器小黑窗,输入:mongo 报错
提示什么program mongo 什么的,问要不要安装apt-get mongodb-client.
一脸懵逼,看别人说真解决不了就照着提示安装,还好我没有,因为它提示会remove mongodb的一些路径,我也不清楚它是不是要通过apt-get帮我重新安装,而且也没指定版本号,后面要是有兼容问题就得不偿失了
官网是是在mongo shell键入mongo这个命令,我就想shell是什么?
后面通过locate mongodb,发现有出现目录
/usr/share/doc/mongodb-org-shell
但是进不去,原来mongodb-org-shell还没有
吐血安装官方文档把下面四个包都下载了
启动成功,查看线程*
ps -ef | grep mongod
终于可以键入mongo命令了,但是还是老问题connection refused
猜想一:是不是没有指明配置文件?
方法:
mongod -f /data/mongod.conf
或者
# sudo mongod --dbpath /var/lib/mongodb --logpath /var/log/mongodb/mongod.log
都是.log文件无法打开;或者说堆栈溢出
.log给了权限sudo chomd 777 /var/log/mongodb/mongod.log,报mongod.log exist,remove to mongod.log.
这个我真的不懂了,算了logpath出问题,我就指定dbpath好了
sudo mongod --dbpath /var/lib/mongodb
但是到了mongo这一步又是connection refused.
真的吐血了
我真的放弃了,然后就去看了买mongodb云服务要多少钱,默默又退回来继续
这时候,我开始怀疑是不是腾讯云的问题,一查,果然。有人说,它的27017端口是要给自己家的Mongodb用的。。。。
我哭了
sudo mongod --dbpath /var/lib/mongodb --bind_ip 内网ip --port 非27017端口
#也可以 sudo mongod --dbpath /var/lib/mongodb --bind_ip127.0.0.1 --port 非27017端口,但是只能在服务器的shell进行连接
在本地浏览器上键入内网ip:端口号
出现了令人性奋的一幕
此时,服务器的另一个小黑窗,键入
mongo --host 内网ip --port 8888
不放弃,多总结,总会有的。