你好啊大侄女儿,叔叔今天帮你解锁新姿识
要是有啥问题,赶紧加微信viower
进行一场轰轰烈烈的学术 性交流
一. 下载MongoDB
-
我的环境 阿里云 CentOS
-
我的工具 FinalShell | Robo
-
根据你自己嗰的系统去官网下载适合的MongoDB
https://www.mongodb.com/download-center/community - 那么优秀的我,当然是这样选啦😅:
-
一般是把MongoDB装在 /usr/local/ 目录下面
cd /usr/local
-
你可以选择下载到本地再上传到服务器,或者直接(复制下面的灰底字)
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-x.x.x.tgz
二. 安装MongoDB
-
在/usr/local目录下面运行
tar -zxvf mongodb-linux-x86_64-x.x.x.tgz
-
作为强迫症患者,你可以把文件夹重命名为mongodb
mv /usr/local/mongodb-linux-x86_63-x.x.x /usr/local/mongodb
三. 配置&启动MongoDB
- 创建数据存放目录和日志目录
cd /usr/local/mongodb
mkdir db
mkdir logs
- 配置
你可以选择创建配置文件,在/usr/local/mongodb/bin目录下创建mongodb.conf文件
vi mongodb.conf
#数据库目录
dbpath=/usr/local/mongodb/db
#日志目录
logpath=/usr/local/mongodb/logs/mongodb.log
#监听端口
port=27017
#后台混淆
fork=true
#需要身份验证
#auth=true
- 执行bin目录下的mongod并指定配置文件
cd /usr/local/mongodb/bin
./mongod -f mongodb.conf
- 或者直接运行指令启动
./mongod --dbpath=/usr/local/mongodb/db --logpath=/usr/local/mongodb/logs/mongodb.log --port=27017 --fork=true
- 配置开机启动,编辑/etc/rc.d/rc.local
vi /etc/rc.d/rc.local
在文件末尾添加一行:
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/bin/mongodb.conf
配置完成后重启测试一下,祝你好运🙆 - 如果闲每次都要cd到bin目录下打指令,可以全局配置一下
vim ~/.bash_profile
在末尾添加两行:
export MONGODB_HOME=/usr/local/mongodb/bin
export PATH=$MONGODB_HOME:$PATH
保存(i
编辑,esc
退出编辑,:wq
保存编辑)以后就可以直接mongo
运行指令了
四. 关闭MongoDB服务
- 进入mongoDB控制台
mongo
或/usr/local/mongodb/bin/mongo
- 切换到admin(配置数据库)
use admin
- 关闭服务
db.shutdownServer();
- 退出控制台
exit
或者直接ctrl + c
- 再次运行
mongo
... 😮失败了~ - 或者你可以暴力结束进程
使用ps -aux
查看所有进程,查找mongod所在进程的pid
然后杀掉该进程
kill -9 24760
五. MongoDB创建用户
- 上面的配置项我们注释了auth,这样你就可以不用认证直接操作数据库。但一般来说,你必须设计自己的安全策略。首先应该创建不同的用户并分配不同的权限
- 创建用户
use admin
db.createUser({ user: "root", pwd: "xxxxxx", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
- 上面的指令中
role
是用户的权限,下面是详细选项及含义
Read // 允许用户读取指定数据库
readWrite // 允许读写数据库
dbAdmin // 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin // 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin // 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
readAnyDatabase // 只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase // 只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase // 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase // 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限
root // 只在admin数据库中可用。超级账号,超级权限
- 创建用户成功后,我们重启mongoDB服务,在指令后面加
--auth
mongod -f /usr/local/mongodb/bin/mongodb.conf --auth
或者在配置文件内加上auth=true
- 启动后执行任意指令
例如show dbs
啊哦😲报错了 - 因为你没有验证身份啊,兄dei~
use admin
db.auth("root", "xxxxxx")
系统返回1
表示验证成功 - 或者你可以在进入MongoDB控制台时进行用户验证
mongo -u "root" -p "xxxxxx" --authenticationDatabase "admin"
- 查看所有用户
db.system.users.find()
- 修改用户信息
db.updateUser("admin", { user: "root", pwd: "xxxxxx", roles: [ "root","userAdminAnyDatabase" ] } )
六. 远程连接MongoDB
- 查看防火墙状态
service iptables status
了解详情 - 如果有开启,就要开放MongoDB服务端口(默认27017)咯
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT
然后重启防火墙
service iptables restart
- 还可以设置绑定到指定的IP地址,禁止白名单以外的IP访问
设置配置文件(mongodb.conf),加上一行
bind_ip=127.0.0.1 #本地访问
bind_ip=0.0.0.0 #全网可访问
- 最后打开我们熟悉的Robo
- 🙊🙊🙊连接成功!
网友评论