目录
1.4进入mongodb的bin目录,创建mongodb.conf文件
一、下载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参数
-
我们把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
-
重启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
-
进入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
-
验证用户名密码
[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