参考:
https://docs.mongodb.com/manual/ (官方文档)
安装mongodb
#创建服务安装目录 mkdir -p /usr/local/server cd /usr/local/server #下载 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.2.tgz #解压,解压完就安装完成了 tar -zxvf mongodb-linux-x86_64-rhel70-4.4.2.tgz #设置环境变量,编辑 vim /etc/profile #添加下一下配置: export PATH=/usr/local/service/mongodb-linux-x86_64-rhel70-4.4.2/bin:$PATH #创建数据存储目录和日志目录 sudo mkdir -p /var/lib/mongodb sudo mkdir -p /var/log/mongodb sudo chown `whoami` /var/lib/mongodb # 设置权限 sudo chown `whoami` /var/log/mongodb # 设置权限 #开启服务 mongod --dbpath /var/lib/mongodb --logpath /var/log/mongodb/mongod.log --fork #命令行连接mongod服务 mongo --username superuser --password changeMeToAStrongPassword #关闭服务 use admin db.shutdownServer()
服务配置
参考:
https://blog.csdn.net/zhanaolu4821/article/details/87614708
#创建配置文件 vim /etc/mongod.conf
#主要配置
dbpath=/usr/local/mongodb304/data
#数据库日志存放目录
logpath=/usr/local/mongodb304/logs/mongodb.log
#以追加的方式记录日志
logappend = true
#端口号 默认为27017
port=27017
#以后台方式运行进程
fork=true
#开启用户认证
auth=true
#关闭http接口,默认关闭http端口访问
nohttpinterface=true
#mongodb所绑定的ip地址
bind_ip = 127.0.0.1
#启用日志文件,默认启用
journal=true
#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=true
#按配置文件启动服务 mongod --config /etc/mongod.conf
设置用户权限
参考:
https://www.cnblogs.com/dbabd/p/10811523.html
MongoDB基本的角色
1.数据库用户角色:read、readWrite;
2.数据库管理角色:dbAdmin、dbOwner、userAdmin;
3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4.备份恢复角色:backup、restore;
5.所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6.超级用户角色:root
这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
其中MongoDB默认是没有开启用户认证的,也就是说游客也拥有超级管理员的权限。userAdminAnyDatabase:有分配角色和用户的权限,但没有查写的权限
use admin db.createUser({user:"root",pwd:"password",roles:["root"]}) #或 db.createUser( { user: "admin", pwd: "password", roles: [{role: "userAdminAnyDatabase", db: "admin"}] } ) #修改用户密码 db.updateUser( "admin",{pwd:"password"}); #如果设置了开启auth,则需要使用账号密码登录,否则连上不能操作 #删除用户 db.system.users.remove({user:"football"});#需要root权限,会将所有数据库中的football用户删除 db.dropUser("football");#权限要求没有那么高,只删除本数据中的football用户
客户端连接
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] mongodb://这是固定的格式,必须要指定。 username:password@这是可选的. 如果设置,在连接数据库服务器之后,驱动都会尝试登陆这个数据库。 host1是这个URI唯一要填写的。它指定了要连接服务器的地址。 :portX可选的指定端口,如果不填,默认为27017 。 /database是要连接数据库的名称 ,这个参数和username:password@有关联。.如果没有指定,默认的数据库为admin。 ?options 是连接参数. 要注意的是,如果database不填写,也要保留符号"/"和"?"。参数格式是name=value。如果填写多个分隔符为"&"或者";"。
php的mongodb扩展
详细接口查询php手册
use MongoDBBSONObjectID;
use MongoDBDriverBulkWrite;
use MongoDBDriverCommand;
use MongoDBDriverCursor;
use MongoDBDriverExceptionAuthenticationException;
use MongoDBDriverExceptionBulkWriteException;
use MongoDBDriverExceptionConnectionException;
use MongoDBDriverExceptionInvalidArgumentException;
use MongoDBDriverExceptionRuntimeException;
use MongoDBDriverManager;
use MongoDBDriverQuery as MongoQuery;
use MongoDBDriverReadPreference;
use MongoDBDriverWriteConcern;