«
2021年12月2日 Linux安装MongoDB

时间:2021-12-2     作者:Mahalalel     分类: 运行环境


一、下载安装包

官网地址:MongoDB下载页面

MongoDB下载页面

方式一:将tgz包下载到本地,然后用XFtp工具上传到服务器;
方式二:拷贝下载链接,直接在服务器上下载,命令如下:

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-5.0.4.tgz

二、解压文件

命令如下:

tar -zxvf mongodb-linux-x86_64-rhel80-5.0.4.tgz -C /usr/local/mongodb

重命名

mv mongodb-linux-x86_64-rhel80-5.0.4 mongodbserver5.0.4

三、创建配置文件

1、创建数据和日志文件夹

cd /usr/local/mongodb
mkdir data
mkdir logs
chmod 777 -R data
chmod 777 -R logs
cd logs
touch mongodb.log

2、创建配置文件

cd /usr/local/mongodb
mkdir etc
cd etc
touch mongodb.conf

mongodb.conf配置文件内容如下:

#数据库路径
dbpath=/usr/local/mongodb/data
#日志输出文件路径
logpath=/usr/local/mongodb/logs/mongodb.log
#错误日志采用追加模式
logappend=true
#启用日志文件,默认启用
journal=true
#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=true
#端口号 默认为27017
port=27017
#允许远程访问
bind_ip=0.0.0.0
#开启子进程
fork=true
#开启认证,必选先添加用户,先不开启(不用验证账号密码)
#auth=true

四、将MongoDB服务加入环境变量

vi /etc/profile
# 最后一行添加
export MONGODB_HOME=/usr/local/mongodb/mongodbserver5.0.4/bin
export PATH=$PATH:CONSUL_HOME:MONGODB_HOME
# wq!保存退出后,应用下配置文件
source /etc/profile

五、启动MongoDB服务

1、在MongoDB安装目录的bin文件夹下启动服务:

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

启动MongoDB

2、查看MongoDB服务是否启动成功

netstat -lanp | grep "27017"

查看MongoDB服务
显示进程,说明已经成功启动。

3、操作MongoDB数据库

①、将mongo路径软链到/usr/bin路径下,方便随处执行mongo命令

ln -s /usr/local/mongodb/mongodbserver5.0.4/bin/mongo  /usr/bin/mongo

否则任意路径下执行“mongo”,报如下错误:

[root@VM-16-8-centos mongodb]# mongo
-bash: mongo: command not found
[root@VM-16-8-centos mongodb]# 

执行以上命令后,再次执行mongo命令,连接MongoDB服务

[root@VM-16-8-centos mongodb]# ln -s /usr/local/mongodb/mongodbserver5.0.4/bin/mongo  /usr/bin/mongo
[root@VM-16-8-centos mongodb]# 
[root@VM-16-8-centos mongodb]# 
[root@VM-16-8-centos mongodb]# mongo
MongoDB shell version v5.0.4
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("f3bcb302-5aa6-47e3-a043-79cd9851d3bd") }
MongoDB server version: 5.0.4
================
Warning: the "mongo" shell has been superseded by "mongosh",
which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in
an upcoming release.
For installation instructions, see
https://docs.mongodb.com/mongodb-shell/install/
================
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
    https://docs.mongodb.com/
Questions? Try the MongoDB Developer Community Forums
    https://community.mongodb.com
---
The server generated these startup warnings when booting: 
        2021-12-02T17:14:30.866+08:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
        2021-12-02T17:14:31.513+08:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
        2021-12-02T17:14:31.513+08:00: You are running this process as the root user, which is not recommended
        2021-12-02T17:14:31.513+08:00: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never'
---
---
        Enable MongoDB's free cloud-based monitoring service, which will then receive and display
        metrics about your deployment (disk utilization, CPU, operation statistics, etc).

        The monitoring data will be available on a MongoDB website with a unique URL accessible to you
        and anyone you share the URL with. MongoDB may use this information to make product
        improvements and to suggest MongoDB products and deployment options to you.

        To enable free monitoring, run the following command: db.enableFreeMonitoring()
        To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
> 

显示如上信息,标识已经成功进入mongo数据库了,默认是进入的是test数据库,show dbs 查看当前所有数据库。

> 
> db
test
> 
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
> 

注意:此时没有使用用户名密码即可登录MongoDB数据库,这是非常危险的,故此我们应该设置授权登录

②、添加用户、安全认证

首先,必须使用admin数据库,进行新用户授权。

注:MongoDB副本集默认会创建local、admin数据库,local数据库主要存储副本集的元数据,admin数据库则主要存储MongoDB的用户、角色等信息。

使用admin数据库

其次,执行一下添加用户的命令:

db.createUser( {user: "root",pwd: "123456",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]});
注:mongoDB 没有无敌用户root,只有能管理用户的用户 userAdminAnyDatabase

成功后,将会看到下面:
设置root用户
注:添加完用户后可以使用show users或db.system.users.find()查看已有用户.
查看用户

再次,添加完用户后,关闭MongoDB服务
注意:注意不要使用kill直接去杀掉mongodb进程,(如果这样做了,请去data/db目录下删除mongo.lock文件),可以使用db.shutdownServer()关闭.
关闭MongoDB服务
上图中查看mongo服务进程,可看到服务已经成功停掉了。

最后,到配置文件中修改配置,启用安全认证。

vi /usr/local/mongodb/etc/mongodb.conf

添加如下配置:

#开启认证,必选先添加用户
auth=true

开启认证
开启下服务,进入数据库测试

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

③、开启认证后,再次操作数据库

开启认证服务后未登录查看
show dbs此时看不到任何数据库,证明安全认证用户配置已经生效了。

再次使用admin数据库,通过db.auth('root','密码')登录,输出1就是验证成功
登录后查看

④、开机自启动

(2022年2月8日 补充)

vi /etc/rc.d/rc.local

在文件末行添加启动命令

/usr/local/mongodb/mongodbserver5.0.4/bin/mongod --config /usr/local/mongodb/etc/mongodb.conf

命令解释:
1、mongod是MongoDB启动文件
2、mongodb.conf是配置文件

六、客户端远程连接

1、首先开启防火墙端口27017

2、使用Navicat连接

Navicat连接云MongoDB

标签: Linux MongoDB安装