CentOS7.8-MongoDB

目录

一、下载MongoDB

1.1检查当前环境

二、下载MongoDB

2.1下载MongoDB

1.3解压缩并重命名

1.4进入mongodb的bin目录,创建mongodb.conf文件

1.5启动服务,进入bin目录

1.6.配置环境变量

1.7启动MongoDB控制台

三、其他操作

2.1重启MongoDB服务

2.2查看是否安装成功

2.3创建用户并设置密码

四、相关问题

一、下载MongoDB

1.1检查当前环境

[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.8.2003 (Core)

创建package目录

[root@localhost ~]# mkdir /data/package -pv 
mkdir: 已创建目录 "/data"
mkdir: 已创建目录 "/data/package"
[root@localhost ~]# cd /data/package

二、下载MongoDB

2.1下载MongoDB

[root@localhost package]# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.6.5.tgz

1.3解压缩并重命名

[root@localhost package]# ll
总用量 98208
-rw-r--r-- 1 root root 100564462 5月  22 2018 mongodb-3.6.5.tgz
[root@localhost package]# tar -xvf mongodb-3.6.5.tgz -C .
[root@localhost package]# ll
总用量 98208
-rw-r--r-- 1 root root 100564462 5月  22 2018 mongodb-3.6.5.tgz
drwxr-xr-x 3 root root        91 7月  13 14:31 mongodb-linux-x86_64-rhel70-3.6.5
[root@localhost package]# mv mongodb-linux-x86_64-rhel70-3.6.5/ mongodb-3.6.5
[root@localhost package]# mkdir /data/mongodb
[root@localhost package]# mv mongodb-3.6.5/* /data/mongodb/

1.4进入mongodb的bin目录,创建mongodb.conf文件

[root@localhost package]# cd /data/mongodb/bin/
[root@localhost bin]# ll
总用量 284676
-rwxr-xr-x 1 root root 10545896 5月  22 2018 bsondump
-rwxr-xr-x 1 root root     5792 5月  22 2018 install_compass
-rwxr-xr-x 1 root root 33637640 5月  22 2018 mongo
-rwxr-xr-x 1 root root 59270568 5月  22 2018 mongod
-rwxr-xr-x 1 root root 12847768 5月  22 2018 mongodump
-rwxr-xr-x 1 root root 10883504 5月  22 2018 mongoexport
-rwxr-xr-x 1 root root 10766664 5月  22 2018 mongofiles
-rwxr-xr-x 1 root root 11024024 5月  22 2018 mongoimport
-rwxr-xr-x 1 root root 58791520 5月  22 2018 mongoperf
-rwxr-xr-x 1 root root 13914640 5月  22 2018 mongoreplay
-rwxr-xr-x 1 root root 13940504 5月  22 2018 mongorestore
-rwxr-xr-x 1 root root 34045944 5月  22 2018 mongos
-rwxr-xr-x 1 root root 11080112 5月  22 2018 mongostat
-rwxr-xr-x 1 root root 10721344 5月  22 2018 mongotop
[root@localhost mongodb]# mkdir /data/mongodb/conf
[root@localhost mongodb]# vim conf/mongodb.conf
[root@localhost mongodb]# cat conf/mongodb.conf
dbpath = /data/mongodb/data  #数据文件存放目录
logpath = /data/mongodb/logs/mongodb.log #日志文件存放目录
port = 27017  #端口号
fork = true  #以守护程序的方式启用,即在后台运行
#auth=true  #是否需要登录认证,配置账号密码需要开启,这里注释掉
noauth=true #不启用验证
storageEngine=wiredTiger  #存储引擎有mmapv1、wiretiger、mongorocks
bind_ip=0.0.0.0 #这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB

1.5启动服务,进入bin目录

[root@localhost bin]# ./mongod -f /data/mongodb/conf/mongodb.conf 
about to fork child process, waiting until server is ready for connections.
forked process: 1488
child process started successfully, parent exiting
[root@localhost bin]# ps -ef | grep 1488
root       1488      1  4 14:45 ?        00:00:00 ./mongod -f /data/mongodb/conf/mongodb.conf
root       1512   1405  0 14:46 pts/0    00:00:00 grep --color=auto 1488 
[root@localhost bin]# netstat -anpt | grep 27017
tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      1488/./mongod

1.6.配置环境变量

[root@localhost logs]# vim /etc/profile
#mongodb
export PATH=/data/mongodb/bin:$PATH
[root@localhost logs]# source /etc/profile
[root@localhost bin]# env | grep mongodb
OLDPWD=/data/mongodb
PATH=/data/mongodb/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/data/mongodb/bin

1.7启动MongoDB控制台

[root@localhost bin]# mongo
MongoDB shell version v3.6.5
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.5
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
        http://docs.mongodb.org/
Questions? Try the support group
        http://groups.google.com/group/mongodb-user
Server has startup warnings: 
2023-07-13T14:45:50.401+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2023-07-13T14:45:50.401+0800 I CONTROL  [initandlisten] 
2023-07-13T14:45:50.401+0800 I CONTROL  [initandlisten] 
2023-07-13T14:45:50.401+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2023-07-13T14:45:50.401+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2023-07-13T14:45:50.401+0800 I CONTROL  [initandlisten] 
2023-07-13T14:45:50.401+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2023-07-13T14:45:50.401+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2023-07-13T14:45:50.401+0800 I CONTROL  [initandlisten] 
> show dbs 
admin  0.000GB
local  0.000GB

三、其他操作

2.1重启MongoDB服务

[root@localhost bin]# ps -ef | grep mongo
root       1488      1  0 14:45 ?        00:00:01 ./mongod -f /data/mongodb/conf/mongodb.conf
root       1538   1405  0 14:49 pts/0    00:00:00 grep --color=auto mongo
[root@localhost bin]# kill -9 1488
[root@localhost bin]# ./mongod -f /data/mongodb/conf/mongodb.conf 
about to fork child process, waiting until server is ready for connections.
forked process: 1541
child process started successfully, parent exiting
[root@localhost bin]# ps -ef | grep mongo
root       1541      1 18 14:49 ?        00:00:01 ./mongod -f /data/mongodb/conf/mongodb.conf
root       1570   1405  0 14:49 pts/0    00:00:00 grep --color=auto mongo

2.2查看是否安装成功

[root@localhost bin]# find / -name mongo
/data/mongodb/bin/mongo

2.3创建用户并设置密码

默认是免密安装的,这里设置账号和密码需要更改mongodb.conf参数

  1. 我们把noauth那一行,前面加上#,注释掉。再在添加 auth = true

    [root@localhost bin]# vim mongodb.conf 
    [root@localhost bin]# cat mongodb.conf 
    dbpath = /data/mongodb/data  #数据文件存放目录
    logpath = /data/mongodb/logs/mongodb.log #日志文件存放目录
    port = 27017  #端口号
    fork = true  #以守护程序的方式启用,即在后台运行
    auth = true
    #auth = true  #是否需要登录认证,配置账号密码需要开启,这里注释掉
    #noauth = true #不启用验证
    storageEngine = wiredTiger  #存储引擎有mmapv1、wiretiger、mongorocks
    bind_ip = 0.0.0.0 #这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB
  2. 重启MongoDB

    [root@localhost bin]# ps -ef | grep mongo
    root       1541      1  1 14:49 ?        00:00:02 ./mongod -f /data/mongodb/conf/mongodb.conf
    root       1661   1405  0 14:51 pts/0    00:00:00 grep --color=auto mongo
    [root@localhost bin]# kill -9 1541
    [root@localhost bin]# ./mongod -f /data/mongodb/conf/mongodb.conf
    about to fork child process, waiting until server is ready for connections.
    forked process: 1674
    child process started successfully, parent exiting
    [root@localhost bin]# ps -ef | grep mongo
    root       1674      1  8 14:51 ?        00:00:00 ./mongod -f /data/mongodb/conf/mongodb.conf
    root       1709   1405  0 14:52 pts/0    00:00:00 grep --color=auto mongo
    [root@localhost bin]# netstat -anpt | grep 27017
    tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      1674/./mongod    
  3. 进入MongoDB数据库,创建超级管理员用户,普通用户

    [root@localhost bin]# mongo
    MongoDB shell version v3.6.5
    connecting to: mongodb://127.0.0.1:27017
    MongoDB server version: 3.6.5
    
    ##使用admin数据库
    > use admin
    switched to db admin
    
    ##给admin数据库添加管理员用户名和密码,用户名和密码请自行设置
    > db.createUser({user:"admin",pwd:"123456",roles:["root"]})
    Successfully added user: { "user" : "admin", "roles" : [ "root" ] }
    
    ##验证是否成功,返回1则代表成功
    > db.auth("admin", "123456")
    1
    
    ##切换到要设置的数据库,以test为例
    > use test
    switched to db test
    
    ##为test创建用户,用户名和密码请自行设置
    > db.createUser({user: "test", pwd: "123456", roles: [{ role: "dbOwner", db: "test" }]})
    Successfully added user: {
            "user" : "test",
            "roles" : [
                    {
                            "role" : "dbOwner",
                            "db" : "test"
                    }
            ]
    }
    > exit 
    bye
  4. 验证用户名密码

    [root@localhost bin]# mongo 
    MongoDB shell version v3.6.5
    connecting to: mongodb://127.0.0.1:27017
    MongoDB server version: 3.6.5
    > use admin
    switched to db admin
    > show dbs
    2023-07-13T14:56:29.494+0800 E QUERY    [thread1] Error: listDatabases failed:{
            "ok" : 0,
            "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0, $db: \"admin\" }",
            "code" : 13,
            "codeName" : "Unauthorized"
    } :
    _getErrorWithCode@src/mongo/shell/utils.js:25:13
    Mongo.prototype.getDBs@src/mongo/shell/mongo.js:65:1
    shellHelper.show@src/mongo/shell/utils.js:849:19
    shellHelper@src/mongo/shell/utils.js:739:15
    @(shellhelp2):1:1
    
    ##输入用户名密码
    > db.auth('admin','123456')
    1
    > show dbs
    admin  0.000GB
    local  0.000GB
    > exit 

四、相关问题

MongoDB无法创建普通用户

#取消限制:
#修改mongd.conf中的
#将enabled改为disabled
security:
  authorization: disabled
#进入数据库
./mongo ip:端口
#切换到admin库中
use admin
#创建授权用户
db.createUser({user: "mongo_sims",pwd: "Invoices2sims.s",roles: [{ role: "root", db: "admin" }]})
#进入数据库   
./mongo --host IP --port 27017 -u用户 -p 密码 指定库名
#指定库
use 库名
#添加用户
db.createUser({user: '用户名',pwd: '密码',roles: [ {role: 'readWrite', db: '库名'} ]})
#添加数据
db.test.insert({'test':'test'})
#查看所有库
show dbs
#查看当前库的所有用户
show users;
#创建完授权用户后,需要将配置文件中的授权开启,重新启动MongoDB
#将enabled改为enabled
security:
  authorization: enabled
/mongodb/bin/mongod -f /mongodb/conf/mongod.conf
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值