• How to install mongodb 7.0 to Ubuntu 22.04


    1、安装

    1.1、添加gpg

    curl -fsSL https://pgp.mongodb.com/server-7.0.asc |  sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor
    
    • 1

    1.2、添加apt源

    echo "deb [ arch=amd64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
    
    • 1

    1.3、更新

    apt update
    
    • 1

    1.4、安装

    apt install -y mongodb-org 
    
    • 1

    2、管理

    2.1、服务管理

    2.1.1、查看服务状态

    安装完成以后,服务是否启动,我们是不知道的,这个时候怎么查看呢,一般来说,mongodb安装完成以后,都会安装成系统服务。通常来说,对于系统服务,我们可以借助以下命令来查看服务是否启动。

    systemctl status mongod.service
    
    • 1

    这里,我们来检测一下:

    lwk@qwfys:~$ sudo systemctl status mongod.service 
    ○ mongod.service - MongoDB Database Server
         Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
         Active: inactive (dead)
           Docs: https://docs.mongodb.org/manual
    
    Oct 21 00:16:33 qwfys systemd[1]: Stopping MongoDB Database Server...
    Oct 21 00:16:33 qwfys systemd[1]: mongod.service: Deactivated successfully.
    Oct 21 00:16:33 qwfys systemd[1]: Stopped MongoDB Database Server.
    Oct 21 00:16:33 qwfys systemd[1]: mongod.service: Consumed 4.804s CPU time.
    Oct 21 00:16:33 qwfys systemd[1]: Started MongoDB Database Server.
    Oct 21 00:16:33 qwfys mongod[6093]: {"t":{"$date":"2023-10-20T16:16:33.931Z"},"s":"I",  "c":"CONTROL",  "id":7484500, "ctx":"main","msg":"Environment variable MONGODB_CONFIG_OVERRIDE_NOFORK>
    Oct 21 10:39:19 qwfys systemd[1]: Stopping MongoDB Database Server...
    Oct 21 10:39:21 qwfys systemd[1]: mongod.service: Deactivated successfully.
    Oct 21 10:39:21 qwfys systemd[1]: Stopped MongoDB Database Server.
    Oct 21 10:39:21 qwfys systemd[1]: mongod.service: Consumed 37.350s CPU time.
    lwk@qwfys:~$ 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    这里,我们看到服务没有启动。

    2.1.2、启动服务

    我们启动一下。

    lwk@qwfys:~$ sudo systemctl start mongod.service 
    lwk@qwfys:~$ sudo systemctl status mongod.service 
    ● mongod.service - MongoDB Database Server
         Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
         Active: active (running) since Sat 2023-10-21 10:44:56 CST; 8s ago
           Docs: https://docs.mongodb.org/manual
       Main PID: 8924 (mongod)
         Memory: 169.4M
            CPU: 762ms
         CGroup: /system.slice/mongod.service
                 └─8924 /usr/bin/mongod --config /etc/mongod.conf
    
    Oct 21 10:44:56 qwfys systemd[1]: Started MongoDB Database Server.
    Oct 21 10:44:57 qwfys mongod[8924]: {"t":{"$date":"2023-10-21T02:44:57.041Z"},"s":"I",  "c":"CONTROL",  "id":7484500, "ctx":"main","msg":"Environment variable MONGODB_CONFIG_OVERRIDE_NOFORK>
    lwk@qwfys:~$ 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    这里,我们看到,服务已经启动起来了。

    2.1.3、 设置服务为开机启动

    通常情况下,对于服务器程序,我可以将其调协为开机启动。

    lwk@qwfys:~$ sudo systemctl enable mongod.service 
    Created symlink /etc/systemd/system/multi-user.target.wants/mongod.service → /lib/systemd/system/mongod.service.
    lwk@qwfys:~$ 
    
    • 1
    • 2
    • 3

    2.1.4、取消服务开机启动

    有的时候,我们又不需要让服务开机启动,这个要求是合理的,具体如下:

    lwk@qwfys:~$ sudo systemctl disable mongod.service 
    Removed /etc/systemd/system/multi-user.target.wants/mongod.service.
    lwk@qwfys:~$ 
    
    • 1
    • 2
    • 3

    2.1.5、关闭服务

    如果希望关闭服务,可以执行以下命令:

    lwk@qwfys:~$ sudo systemctl stop mongod.service 
    lwk@qwfys:~$ sudo systemctl status mongod.service 
    ○ mongod.service - MongoDB Database Server
         Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
         Active: inactive (dead)
           Docs: https://docs.mongodb.org/manual
    
    Oct 21 10:39:19 qwfys systemd[1]: Stopping MongoDB Database Server...
    Oct 21 10:39:21 qwfys systemd[1]: mongod.service: Deactivated successfully.
    Oct 21 10:39:21 qwfys systemd[1]: Stopped MongoDB Database Server.
    Oct 21 10:39:21 qwfys systemd[1]: mongod.service: Consumed 37.350s CPU time.
    Oct 21 10:44:56 qwfys systemd[1]: Started MongoDB Database Server.
    Oct 21 10:44:57 qwfys mongod[8924]: {"t":{"$date":"2023-10-21T02:44:57.041Z"},"s":"I",  "c":"CONTROL",  "id":7484500, "ctx":"main","msg":"Environment variable MONGODB_CONFIG_OVERRIDE_NOFORK>
    Oct 21 10:53:39 qwfys systemd[1]: Stopping MongoDB Database Server...
    Oct 21 10:53:39 qwfys systemd[1]: mongod.service: Deactivated successfully.
    Oct 21 10:53:39 qwfys systemd[1]: Stopped MongoDB Database Server.
    Oct 21 10:53:39 qwfys systemd[1]: mongod.service: Consumed 4.566s CPU time.
    lwk@qwfys:~$
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    2.1.6、服务重启

    如果需要重启服务,可以用以下命令:

    lwk@qwfys:~$ sudo systemctl status mongod.service 
    ● mongod.service - MongoDB Database Server
         Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
         Active: active (running) since Sat 2023-10-21 10:56:42 CST; 8s ago
           Docs: https://docs.mongodb.org/manual
       Main PID: 9271 (mongod)
         Memory: 169.5M
            CPU: 787ms
         CGroup: /system.slice/mongod.service
                 └─9271 /usr/bin/mongod --config /etc/mongod.conf
    
    Oct 21 10:56:42 qwfys systemd[1]: Started MongoDB Database Server.
    Oct 21 10:56:42 qwfys mongod[9271]: {"t":{"$date":"2023-10-21T02:56:42.485Z"},"s":"I",  "c":"CONTROL",  "id":7484500, "ctx":"main","msg":"Environment variable MONGODB_CONFIG_OVERRIDE_NOFORK>
    lwk@qwfys:~$ sudo systemctl restart mongod.service 
    lwk@qwfys:~$ sudo systemctl status mongod.service 
    ● mongod.service - MongoDB Database Server
         Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
         Active: active (running) since Sat 2023-10-21 10:57:21 CST; 2s ago
           Docs: https://docs.mongodb.org/manual
       Main PID: 9326 (mongod)
         Memory: 169.3M
            CPU: 717ms
         CGroup: /system.slice/mongod.service
                 └─9326 /usr/bin/mongod --config /etc/mongod.conf
    
    Oct 21 10:57:21 qwfys systemd[1]: Started MongoDB Database Server.
    Oct 21 10:57:21 qwfys mongod[9326]: {"t":{"$date":"2023-10-21T02:57:21.090Z"},"s":"I",  "c":"CONTROL",  "id":7484500, "ctx":"main","msg":"Environment variable MONGODB_CONFIG_OVERRIDE_NOFORK>
    lwk@qwfys:~$ 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    2.2、mongosh

    这里,我们借助mongosh命令来完成mongodb的相关管理工作。

    2.2.1、进入mongosh

    lwk@qwfys:~$ mongosh
    Current Mongosh Log ID:	653297d8d2647c0396c5de9d
    Connecting to:		mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.0.2
    Using MongoDB:		7.0.2
    Using Mongosh:		2.0.2
    
    For mongosh info see: https://docs.mongodb.com/mongodb-shell/
    
    
    To help improve our products, anonymous usage data is collected and sent to MongoDB periodically (https://www.mongodb.com/legal/privacy-policy).
    You can opt-out by running the disableTelemetry() command.
    
    ------
       The server generated these startup warnings when booting
       2023-10-20T22:09:01.515+08:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
       2023-10-20T22:09:02.223+08:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
       2023-10-20T22:09:02.224+08:00: vm.max_map_count is too low
    ------
    
    test> show dbs
    admin   40.00 KiB
    config  60.00 KiB
    local   72.00 KiB
    test>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    这里,我们可以看到,系统安装成功以后,会自带三个库,分别是test、admin、local。

    2.2.2、创建数据库

    在mongosh中,如果要我们借助命令use可以完成数据库的创建与切换。下面,我们创建一个名称为emei的库。

    test> use emei
    switched to db emei
    emei>
    
    • 1
    • 2
    • 3

    2.2.3、数据库用户

    2.2.3.1、查看数据库用户

    可以借助如下命令查看当前数据库有哪些用户。

    emei> db.getUsers();
    { users: [], ok: 1 }
    emei>
    
    • 1
    • 2
    • 3

    这里,我们看到,没有一个用户。

    2.2.3.2、创建数据库用户

    接下来,我们创建两个用户,其中一个用户名为admin,密码为Gah6kuP7ohfio4,另一个用户,用户名为admix,密码为Gah6kuP7ohfio4,并为它赋于读写权限。

    emei> db.createUser(
    ...   {
    ...     user: "admin",
    ...     pwd: "Gah6kuP7ohfio4",
    ...     roles: [ { role: "readWrite", db: "emei" } ]
    ...   }
    ... )
    { ok: 1 }
    emei> db.createUser(
    ...   {
    ...     user: "admix",
    ...     pwd: "Gah6kuP7ohfio4",
    ...     roles: [ { role: "readWrite", db: "emei" } ]
    ...   }
    ... )
    { ok: 1 }
    emei> db.getUsers();
    {
      users: [
        {
          _id: 'emei.admin',
          userId: new UUID("fedb3cb0-7850-4904-ba7a-5e182cd1e9c9"),
          user: 'admin',
          db: 'emei',
          roles: [ { role: 'readWrite', db: 'emei' } ],
          mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]
        },
        {
          _id: 'emei.admix',
          userId: new UUID("910386e6-81e2-4c5b-8eb0-6b273e5319a8"),
          user: 'admix',
          db: 'emei',
          roles: [ { role: 'readWrite', db: 'emei' } ],
          mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]
        }
      ],
      ok: 1
    }
    emei> 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    我们看到,用户已经创建成功。

    2.2.3.3、删除数据库用户

    这里,我们删除用户名为admix的用户。

    emei> db.dropUser("admix", {w: "majority", wtimeout: 4000});
    { ok: 1 }
    emei> db.getUsers();
    {
      users: [
        {
          _id: 'emei.admin',
          userId: new UUID("fedb3cb0-7850-4904-ba7a-5e182cd1e9c9"),
          user: 'admin',
          db: 'emei',
          roles: [ { role: 'readWrite', db: 'emei' } ],
          mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]
        }
      ],
      ok: 1
    }
    emei>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    2.2.3.4、创建数据库管理员用户
    emei> use admin
    switched to db admin
    admin> db.createUser(
    ...   {
    ...     user: "admin",
    ...     pwd: passwordPrompt(),
    ...     roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
    ...  }
    ... )
    Enter password
    Gah6kuP7ohfio4
    **************{ ok: 1 }
    admin> exit
    lwk@qwfys:~$
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    我们可以看到,管理员用户已经创建完成。

    2.2.4、用管理账号管理mongodb

    2.2.4.1、添加配置项

    为了使用账号登录到mongodb数据库,这个时候,我们需要在mongodb数据库配置文件中添加启用权限配置项:

    sudo tee -a /etc/mongod.conf <<-'EOF'
    
    security:
        authorization: enabled
    
    EOF
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    添加完成以后,要使配置生效,我们还需要重启mongodb服务。

    2.2.4.2、基于账号连接

    当然我们需要基于账号连接到mongodb数据库服务端的时候,需要采用如下的方式:

    lwk@qwfys:~$ mongosh --username=admin --password=Gah6kuP7ohfio4
    Current Mongosh Log ID:	6532a6ae0cdd8066876fefa0
    Connecting to:		mongodb://<credentials>@127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.0.2
    Using MongoDB:		7.0.2
    Using Mongosh:		2.0.2
    
    For mongosh info see: https://docs.mongodb.com/mongodb-shell/
    
    test> show dbs;
    admin   180.00 KiB
    config   72.00 KiB
    local    72.00 KiB
    test> 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    这里,我们看到,服务已经连接成功,而且可以正常使用了。

  • 相关阅读:
    全网最全Django面试题整理(一)
    你应该知道的 Python 自动化脚本
    十年坎坷Java路,文哥从“菜鸟”到“大佬”的逆袭成长经历
    java计算机毕业设计ssm+vue红联小区果蔬销售网站-水果购物商城
    【Git】Git提交代码到远程仓库,删除分支,克隆到本地 等操作指令
    VMware Workstation 与 Device/Credential Guard 不兼容 解决办法
    favicon.ico网站图标不显示问题 Failed to load resource: net::ERR_FILE_NOT_FOU
    【最佳实践】瀚高数据库企业版v6.0.2在Centos7.8安装过程
    MATLAB数字图像处理 实验五:形态学图像处理
    Java开发与配置用到的各类中间件官网
  • 原文地址:https://blog.csdn.net/qwfys200/article/details/133952170