美文网首页
MongoDB安装和启动

MongoDB安装和启动

作者: 爱吃油果子 | 来源:发表于2020-03-22 12:39 被阅读0次

一、安装

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

刷新生效

source .bash_profile

  • 创建数据库存储目录 /data/db
cd /usr/local/mongodb/bin 
sudo mkdir -p ./data/db

二、启动

  • 终端输入(使用sudo权限):
sudo mongod
  • 如果没有创建全局路径 PATH,需要进入以下目录:
cd /usr/local/mongodb/bin
sudo ./mongod
  • 打开浏览器,输入http://localhost:27017会出现:
    It looks like you are trying to access MongoDB over HTTP on the native driver port.

三、使用数据库

  • 再打开一个终端:
mongo

会出现版本信息:MongoDB shell version v4.2.3
终端上会一直显示一个 ‘>’ 符号,此时就可以输入mongodb的sql命令了:

# 输入命令试试
show dbs;
  • 正确停止mongodb,一定要正确的退出,不然下次再次连接数据库会出现问题
use admin;
db.shutdownServer();

此时http://localhost:27017连不上,服务也已停止

四、生产环境-启动方式

  • 1、推荐使用配置文件方式启动
    cd /usr/local/mongodb/bin
    mongod -f mongodb.conf
  • 2、另一种是参数方式启动
    bin/mongod -dbpath /data/mongo/ -logpath /data/mongo/mongo.log -logappend -fork -port 27017 -auth

五、生产环境-用户权限

在生产环境是有权限的,创建/修改配置文件

  • 创建用户时noauth = true,创建完成后auth = true
    vi /usr/local/mongodb/bin/mongodb.conf
# mongodb.conf

# Where to store the data.
dbpath=/data/db

# where to log
logpath=/var/log/mongodb/mongodb.log
logappend=true

# 允许后台运行
fork=true

# 任意ip可访问
bind_ip = 0.0.0.0
# 端口号
port = 27017

# Enable journaling, http://www.mongodb.org/display/DOCS/Journaling
journal=true

# Enables periodic logging of CPU utilization and I/O wait
#cpu = true

# Turn on/off security.  Off is currently the default
#noauth = true
auth = true
  • 在createUser之前先use admin切换一下
use admin 
db.createUser(
    {
        user:"username",
        pwd:"password",
        roles:[{role:"root",db:"admin"}]
    }
);

附:添加用户时各个角色对应权限
1.数据库用户角色:read、readWrite;
2.数据库管理角色:dbAdmin、dbOwner、userAdmin;
3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4.备份恢复角色:backup、restore
5.所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6.超级用户角色:root

  • 创建完成后修改配置为auth = true并重启,下次就需要使用账号登录了
use admin
db.auth('username','password')
show dbs
# 展示集合列表
show collections
# 查询user集合汇总username为admin的1条数据
db.user.find({username:'admin'}).limit(1)
# 统计user集合的总条数
db.user.count()
  • 可视化工具推荐
    官方的compass,第三方Robo 3T
    连接字符串格式,如密码含有特殊字符如斜杠需要转义
# 不带账号密码数据库
mongodb://127.0.0.1:27017
# 指定账号密码数据库
mongodb://username:password@127.0.0.1:27017/admin

六、其他常见问题

  • telnet 27017不通时,检查防火墙状态放行端口
# 防火墙开启状态
systemctl status firewalld
# 放行端口列表(如果没有在里面则使用后面的命令加入放行)
iptables -nL
# 防火墙放行27017即可
iptables -I INPUT -p tcp --dport 27017 -j ACCEPT

相关文章

网友评论

      本文标题:MongoDB安装和启动

      本文链接:https://www.haomeiwen.com/subject/maimyhtx.html