Centos7安装MondoDB7

一、安装 MongoDB Server

1.1、下载安装包并解压

cd /usr/local/

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-7.0.18.tgz

tar -xzvf mongodb-linux-x86_64-rhel70-7.0.18.tgz

mv mongodb-linux-x86_64-rhel70-7.0.18 mongodb

2、创建 MongoDB 的配置、数据和日志目录

# 创建三个文件夹
mkdir data data/db data/log

# 设置可读写权限
sudo chmod 666 data/db data/log/

3、在 mongodb 目录下新建配置文件 mongodb.conf(可选,但建议配置),打开文件输入以下内容。 

systemLog:
   destination: file
   path: "/usr/local/mongodb/log/mongod.log"
   logAppend: true
storage:
   dbPath: "/usr/local/mongodb/data"
processManagement:
   fork: true
   pidFilePath: "/usr/local/mongodb/mongod.pid"
net:
   bindIp: 0.0.0.0
   port: 27017

 4、配置环境变量,使用 sudo vi /etc/profile 命令打开系统文件,最后使用 source /etc/profile 命令重启系统配置。

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

5、完成以上步骤即可启动 Mongo 服务。

[root@localhost mongodb]# mongod -f /usr/local/mongodb/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 95517
child process started successfully, parent exiting
[root@localhost mongodb]# ps aux | grep mongo
root      95517  1.7  1.0 598464 86472 ?        Sl   10:24   0:00 mongod -f /usr/local/mongodb/mongodb.conf
root      97715  0.0  0.0 110396   912 pts/0    S+   10:25   0:00 grep --color=auto mongo

5、开机自启动

使用 vi /lib/systemd/system/mongodb.service 命令新建开机启动配置文件,输入以下内容保存。

[Unit]
    Description=mongodb
    After=network.target remote-fs.target nss-lookup.target
[Service]
    Type=forking
    ExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf --shutdown
    PrivateTmp=true
[Install]
    WantedBy=multi-user.target

6、启动、停止、状态查看命令

systemctl start mongodb.service
systemctl restart mongodb.service
systemctl stop mongodb.service
systemctl enable mongodb.service
[root@localhost mongodb]# systemctl status mongodb
● mongodb.service - mongodb
   Loaded: loaded (/usr/lib/systemd/system/mongodb.service; disabled; vendor preset: disabled)
   Active: active (running) since 五 2025-11-14 10:27:06 CST; 17s ago
  Process: 103074 ExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf (code=exited, status=0/SUCCESS)
 Main PID: 103076 (mongod)
    Tasks: 33
   Memory: 186.0M
   CGroup: /system.slice/mongodb.service
           └─103076 /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf

11月 14 10:27:05 localhost.localdomain systemd[1]: Starting mongodb...
11月 14 10:27:05 localhost.localdomain mongod[103074]: about to fork child process, waiting until server is ready for connections.
11月 14 10:27:05 localhost.localdomain mongod[103074]: forked process: 103076
11月 14 10:27:06 localhost.localdomain mongod[103074]: child process started successfully, parent exiting
11月 14 10:27:06 localhost.localdomain systemd[1]: Started mongodb.
[root@localhost mongodb]# systemctl stop mongodb
[root@localhost mongodb]# systemctl status mongodb
● mongodb.service - mongodb
   Loaded: loaded (/usr/lib/systemd/system/mongodb.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

11月 14 10:27:05 localhost.localdomain systemd[1]: Starting mongodb...
11月 14 10:27:05 localhost.localdomain mongod[103074]: about to fork child process, waiting until server is ready for connections.
11月 14 10:27:05 localhost.localdomain mongod[103074]: forked process: 103076
11月 14 10:27:06 localhost.localdomain mongod[103074]: child process started successfully, parent exiting
11月 14 10:27:06 localhost.localdomain systemd[1]: Started mongodb.
11月 14 10:27:30 localhost.localdomain systemd[1]: Stopping mongodb...
11月 14 10:27:30 localhost.localdomain mongod[104464]: Killing process with pid: 103076
11月 14 10:27:31 localhost.localdomain systemd[1]: Stopped mongodb.
[root@localhost bin]# systemctl enable mongodb
Created symlink from /etc/systemd/system/multi-user.target.wants/mongodb.service to /usr/lib/systemd/system/mongodb.service.

二、安装 MongoDB Shell 客户端

1、下载安装包并解压

wget https://downloads.mongodb.com/compass/mongosh-2.4.2-linux-x64.tgz

tar -xzvf mongosh-2.4.2-linux-x64.tgz

mv mongosh-2.4.2-linux-x64 mongodb/mongosh

2、修改环境变量文件

vim /etc/profile.d/mongodb.sh 
export PATH=/usr/local/mongodb/bin:/usr/local/mongodb/mongosh/bin:$PATH

#使环境变量生效
source /etc/profile.d/mongodb.sh

3、连接测试

mongosh

三、创建 MongoDB 管理员用户

MongoDB 默认是没有管理员账号的,所以要先添加管理员账号,再开启权限认证;MongoDB 添加账号需要使用 use admin 切换到 admin 数据库,在 admin 数据库添加的账号才是管理员账号;

1、使用 MongoDB Shell 客户端工具连接到 MongoDB Server

mongosh

2、查看数据库

test> show dbs;
admin   40.00 KiB
config  12.00 KiB
local   72.00 KiB

3、切换到 admin 数据库

test> use admin;
switched to db admin

4、创建管理员用户

#查看用户
admin> show users;
[]

#可以看到是没有用户的,接下来创建一个管理员用户
admin> db.createUser({user: "admin", pwd: "123456", roles: [{ role: "userAdminAnyDatabase", db: "admin"}]});
{ ok: 1 }

#再次查看用户,可以看到新的用户了
admin> show users;
[
  {
    _id: 'admin.admin',
    userId: UUID('0748450a-812f-4114-aa1a-bb4fe10c9f96'),
    user: 'admin',
    db: 'admin',
    roles: [ { role: 'userAdminAnyDatabase', db: 'admin' } ],
    mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]
  }
]

#修改密码,注意先use admin到相应的库
admin> db.changeUserPassword("admin", "a123456");
{ ok: 1 }

四、开启 MongoDB Server 的登录认证

1、修改 mongod.conf 文件

vim /usr/local/mongodb/etc/mongod.conf
#在最后面添加以下内容:
security:
   authorization: enabled

2、重启 MongoDB 服务

systemctl restart mongodb

3、连接测试

mongosh -u admin -p 123456

五、创建库及普通用户

1、使用管理员用户登录数据库

mongosh -u admin -p 123456

2、创建库与用户

#创建一个数据库mydb
use mydb;

#创建mydb数据库的用户(读写权限)
db.createUser({ user: "myuser", pwd: "m123456", roles: [{ role: "readWrite", db: "mydb"}]});

#查看用户
mydb> show users;
[
  {
    _id: 'mydb.myuser',
    userId: UUID('ca9ca4de-472f-48fb-942b-051ddf91ff83'),
    user: 'myuser',
    db: 'mydb',
    roles: [ { role: 'readWrite', db: 'mydb' } ],
    mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]
  }
]

#校验库的用户
mydb> db.auth("myuser", "m123456")
{ ok: 1 }

#获取当前连接的用户
mydb> db.runCommand({connectionStatus: 1})
{
  authInfo: {
    authenticatedUsers: [ { user: 'myuser', db: 'mydb' } ],
    authenticatedUserRoles: [ { role: 'readWrite', db: 'mydb' } ]
  },
  ok: 1
}

3、创建一个表并插入一条数据

#创建一个表并插入测试数据,不然连接后使用show dbs不显示库名
mydb> db.test_collection.insertOne({ name: "init" });
{
  acknowledged: true,
  insertedId: ObjectId('67e60c3e159f20f3876b140b')
}

#查看表
mydb> show tables;
test_collection

#查看库
mydb> show dbs;
mydb  8.00 KiB

 

posted @ 2025-11-14 17:12  Hexrui  阅读(28)  评论(0)    收藏  举报
返回顶部