mongodb——Windows生产环境安装遇到的问题解决方案
1.windows下 mongodb 3.2加fork选项启动报unrecognised option ‘fork’
windows下启动mongodb为后台进程加fork选项报错如下:
D:\Program Files\MongoDB\Server\3.2\bin>mongod --config "D:\Program Files\MongoD
B\Server\mongodb.conf"
Error parsing INI config file: unrecognised option ‘fork’
try ‘mongod --help’ for more information
原因:
–fork不支持windows 解决可以通过添加mongodb为windows服务来解决
如果是windowns安装mongdb,需要将conf中的fork配置去掉
参考:
windows下 mongodb 3.2加fork选项启动报unrecognised option ‘fork’
2. net start MongoDB报错:服务名无效
cmd到mongodb的bin目录,启动MongoDB, 输入net start MongoDB报错:服务名无效。
出现该问题是命令行安装时没有将命名mongdb服务,或者 net start MongoDB最后的MongoDB和安装的服务名对不上,强烈建议使用以下方式命令行安装
D:\software\mongodb\bin>mongod.exe --config="D:\software\mongodb\config\mongodb.conf" --install --serviceName "mongo" --logappend --directoryperdb
D:\software\mongodb\bin>net start mongo
3.【已解决】net start MongoDB报错:发生服务特定错误: 100.
直接进入db文件夹,先删除 mongod.lock 文件,然后重新启动服务即可;
还不行,继续删 storage.bson文件即可
4.MongoDB 权限控制(用户密码)
此操作【一定】要在【命令行窗口】里使用管理员身份运行cmd命令开进行创建用户!!!
4.1 登陆mongodb
服务启动后,再多开一个cmd窗口B,cd 进入安装路径,比如cd D:\software\mongodb\bin,输入mongo即可连接上了mongodb数据库
有的同学执行mongo命令登陆后会报这个错误:
Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js
解决办法:
一般是config的路径指定有问题,重新使用以下命令指定config路径
D:\software\mongodb\bin>mongod --dbpath=/software/mongodb/data/db --auth
参考文章:
Error: couldn’t connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js
此时mongodb服务是已经跑起来了,
重新在开一个新的管理员身份运行cmd窗口,到安装bin目录输入mongo即可连接上了
4.6 创建test数据库test用户可能出现的问题
开启权限验证后登陆报错没有权限,一个对应的用户只能再对应的数据库下登陆,并做对应的命令操作,除非是root权限的账户,如果使用命令报错"not authorized on admin to execute command ",则表示当前登陆用户不具备相应权限;
5.spring工程连接串配置
5.1 spring.data.mongodb.uri配置格式mongodb://userName:password@ip/DB?authSource=DB,
spring.data.mongodb.uri=mongodb://test:test1234@10.10.XX.XX/test?authSource=test
spring.data.mongodb.username=test
spring.data.mongodb.password=test1234
5.2 spring工程连接串配置可能出现的问题
注意:
后面不加authSource=test在启动时不会报错,连接时会如下报错,和nosql一样在连接时需要执行该账号的数据库名称才能连接上
An unhandled exception occurred while processing the request.
MongoCommandException: Command saslStart failed: Authentication failed..
MongoDB.Driver.Core.WireProtocol.CommandUsingQueryMessageWireProtocol<TCommandResult>.ProcessReply(ConnectionId connectionId, ReplyMessage<RawBsonDocument> reply)
MongoAuthenticationException: Unable to authenticate using sasl protocol mechanism SCRAM-SHA-1.
MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelper(CancellationToken cancellationToken)
mongodb的日志中也会出现类似的没有权限的日志:
7.扩展:
7.1 查看mongodb当前配置的命令
删除用户:
db.auth('test','1234')
查看mongodb当前配置的命令
use admin
db.runCommand( { getParameter : '*' } )
7.2 windows环境下启动mongodb服务
mongod --dbpath D:\software\mongodb\data
7.3 MongoDB 创建用户 修改密码 修改权限 删除用户
7.4 添加用户时各个角色对应权限
1.数据库用户角色:read、readWrite;
2.数据库管理角色:dbAdmin、dbOwner、userAdmin;
3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4.备份恢复角色:backup、restore
5.所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6.超级用户角色:root
7.5 启动和关闭mongodb命令如下:
注意:这一个启动命令和7.2的应该没有区别,但是7.2的验证可行,7.4的未验证
service mongodb start
service mongodb stop
默认设置MongoDB是随Ubuntu启动自动启动的。
输入以下命令查看是否启动成功:
pgrep mongo -l #注意:-l是英文字母l,不是阿拉伯数字1
卸载MongoDB
sudo apt-get --purge remove mongodb mongodb-clients mongodb-server
三、使用MongoDB
常用操作命令:
数据库相关
show dbs:显示数据库列表
show collections:显示当前数据库中的集合(类似关系数据库中的表table)
show users:显示所有用户
use yourDB:切换当前数据库至yourDB
db.help() :显示数据库操作命令
db.yourCollection.help() :显示集合操作命令,yourCollection是集合名
其他操作数据库内容可参考:
NoSQL数据库一MongoDB基本使用
参考文章:
Windows 10 安装 Mongodb
MongoDB authentication failed
windows环境下启动mongodb服务
win10命令行切换文件目录