一、安装步骤

1、下载安装

1、下载

$ wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.9.tgz

2、解压

$ tar -zxvf mongodb-linux-x86_64-4.0.9.tgz

3、改名,放到目录:/usr/local

$ mv mongodb-linux-x86_64-4.0.9 /usr/local/mongodb

4、新建必要的文件夹(依次是:数据库 日志 配置文件)

$ cd /usr/local/mongodb
$ mkdir data log etc

5、添加系统路径

$ vim /etc/profile

export PATH=$PATH:/usr/local/mongodb/bin

6、配置生效

$ source /etc/profile

7、查看是否添加

$ echo $PATH

或者做软链

ln -s /usr/local/mongodb/bin/mongo /usr/bin/mongo

2、配置文件

$ vim etc/mongodb.conf

配置内容

db存放的目录

dbpath=/usr/local/mongodb/data

后台启动需要配置日志输出

logpath=/usr/local/mongodb/log/mongodb.log

端口

port=27017
#绑定ip 默认127.0.0.1只允许本地连接
bind_ip = 127.0.0.1

设置成后台启动

fork=true
journal=false

3、启动关闭

启动服务

mongod --config /usr/local/mongodb/etc/mongodb.conf

查看是否启动mongo

netstat -lanp | grep "27017"

关闭服务

mongod --config /usr/local/mongodb/etc/mongodb.conf --shutdown

或者

killall mongod

二、外网访问和权限

1、添加用户

本地连接

$ mongo

添加用户

> use admin
switched to db admin
> db.createUser({user: "admin",pwd: "123456",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]});

添加超级用户

> db.createUser({user: "root",pwd: "123456",roles: [ { role: "root", db: "admin" } ]});

查看已有用户

> show users

删除单个用户

> db.system.users.remove({user:"XXXXXX"})

关闭服务

> db.shutdownServer()

2、配置文件中添加

vim /usr/local/mongodb/etc/mongodb.conf

登录验证

auth=true

外网访问

bind_ip = 0.0.0.0

然后启动,这时需要进行验证

本地连接 - 连接时验证

$ mongo -u username -p password

远程连接 - 连接时验证

$ mongo 127.0.0.1/admin -u username -p password

远程连接 - 连接后验证

$ mongo 127.0.0.1/admin
> use admin
switched to db admin

> db.auth("username", "password")
//-------------报错------------------------
MongoDB shell version v4.0.9
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
2021-08-03T17:06:48.671+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:343:13
@(connect):2:6
exception: connect failed

问题原因:
要与mongo连接,必须首先启动’mongod’服务

解决:
mongod --dbpath /usr/local/mongodb/data

db.auth(“admin”, “123456”)

三、设置开机启动

vim /etc/rc.d/init.d/mongod

内容如下, 注意使用绝对路径

start() {  
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/etc/mongodb.conf
}

stop() {
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/etc/mongodb.conf --shutdown
}
case "$1" in
start)
start
;;

stop)
stop
;;

restart)
stop
start
;;
*)
echo
$"Usage: $0 {start|stop|restart}"
exit 1
esac

启动关闭

更改权限

chmod +x /etc/rc.d/init.d/mongod

启动服务

service mongod start

关闭服务

service mongod stop

四、其他

1、检查端口号开启情况

查看开启的端口号

iptables -L -n

查看端口使用情况

lsof -i:27017

2、Python使用的连接url:

mongodb://<username>:<password>@<ip>:<port>/<database>

例如:

mongodb://root:123456@127.0.0.1:27017/test

五、报错及解决

1、mongo启动报错

mongod: 无法执行二进制文件

解决:
检查你的linux是64还是32位,版本是否对应

$ getconf LONG_BIT

2、端口问题解决:

MongoDB 开放外网访问了,可是就是访问不到,要考虑平台的端口权限了,可以尝试从以下3点考虑

1、如果用了宝塔面板端口开放,也可以在服务器上开放,效果一样的
2、阿里云控制台的安全组
3、mongod端口开放