linux系统MongoDB4.0安装,密码设置,常用命令,集成springmvc
MongoDB安装
-
下载MongoDB
-
上传到linux系统/usr/local目录下并解压 tar -zxvf mongodb-linux-x86_64-4.0.12.tgz
-
重命名mongodb-linux-x86_64-4.0.12为mongodb,在mongodb目录下创建data,log文件夹,在bin目录下创建config.ini,config.ini内容为
# 指定端口
port=27017
# 指定MongoDB日志文件,注意是指定文件不是目录
logpath=/usr/local/mongodb/log/mongodb.log
# 使用追加的方式写日志
logappend=true
# 指定数据库路径
dbpath=/usr/local/mongodb/data
# 设置每个数据库将被保存在一个单独的目录
directoryperdb=false
# 启用验证
auth=false
#以守护进程的方式运行MongoDB,创建服务器进程
fork=true
#安静输出
quiet=true
#Disables write-ahead journaling
nojournal=false
# 0.0.0.0表示不限定访问ip
bind_ip=0.0.0.0
PS:如果低版本不支持bind_ip选项可以去掉
- 启动mongodb: /usr/local/mongodb/bin目录下运行 ./mongod -f config.ini
密码设置
- 创建用户并授权
- 连接mongodb: ./mongo
- 使用admin数据库: use admin
- 创建用户:
db.createUser({user:"test",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"},{role:"readWriteAnyDatabase", db:"admin"}]})
- 退出: exit
PS:admin的用户也有其他数据库的权限;可以只在某一个数据库上创建用户,该用户只有这个数据库的相关权限
- 启用用户名密码认证:修改config.ini文件auth=true重启mongodb
- 连接数据库并认证
常用命令
- 启动mongodb: ./mongod -f config.ini
- 连接mongodb: ./mongo
- 切换/使用数据库: use admin(数据库名)
- 以下操作需要先指定数据库并认证
- 显示所有数据库: show dbs
- 显示所有用户: show users
- 创建用户(需指定数据库):
db.createUser({user:"test",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
- 删除用户:
db.dropUser("test")
- 修改密码:
db.changeUserPassword("test","456789")
- 修改密码:
db.updateUser("test",{pwd:"456789"})
- 修改用户:
db.updateUser("test",{roles:[ {role:"read",db:"admin"} ]})
- 修改权限:
db.grantRolesToUser("test", [{role:"readWriteAnyDatabase", db:"admin"},{role:"userAdminAnyDatabase", db:"admin"}])
- 删除权限:
db.revokeRolesFromUser("test",[{role:"read", db:"admin"}])
- 删除数据库: db.dropDatabase()
- 内置角色
- 数据库用户角色:read、readWrite
- 数据库管理角色:dbAdmin、dbOwner、userAdmin
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
- 备份恢复角色:backup、restore
- 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超级用户角色:root
集成springmvc
- 配置文件datasource.properties
#ip
mongodb.host=127.0.0.1
#端口
mongodb.port=27017
#用户名
mongodb.username=test
#密码
mongodb.password=123456
#认证数据库
mongodb.auth.db=admin
#业务存储数据库
mongodb.db=database
- mongodb签名:http://www.springframework.org/schema/data/mongo/spring-mongo-2.0.xsd
- mongoTemplate配置
<context:property-placeholder
location="classpath:datasource.properties" />
<!-- mongo配置 -->
<!-- 定义mongo对象,对应的是mongodb官方jar包中的Mongo,replica-set设置集群副本的ip地址和端口 " -->
<mongo:mongo-client id="mongo"
replica-set="${mongodb.host}:${mongodb.port}"
credentials="${mongodb.username}:${mongodb.password}@${mongodb.auth.db}">
<!-- 一些连接属性的设置 -->
<mongo:client-options connections-per-host="8"
threads-allowed-to-block-for-connection-multiplier="4"
connect-timeout="1000" max-wait-time="1500" socket-keep-alive="true"
socket-timeout="1500" />
</mongo:mongo-client>
<mongo:db-factory id="mongoFactory" dbname="${mongodb.db}"
mongo-ref="mongo" />
<bean id="mongoTemplate"
class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory"
ref="mongoFactory" />
</bean>
- spring xml中注册mongoTemplate相关配置参数可以参考spring-mongo-2.0.xsd.
文件路径(idea可在xml中Ctrl+左键点进去):spring-data-mongodb-2.1.1.RELEASE.jar!/org/springframework/data/mongodb/config/spring-mongo-2.0.xsd