之前安装的Mongodb比较老1.8.2的,该版本的mongodb数据库有个缺陷,总的数据库容量不能超过2G,倘若超出2G,再往数据库中插入数据是插不进去的。
于是更新版本到3.0
步骤:
1.官网下载mongodb安装文件
2.安装配置
1.下载安装包
wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.2.tgz
下载完成后解压缩压缩包
tar zxf mongodb-linux-i686-1.8.2.tgz
2. 安装准备
将mongodb移动到/usr/local/mongdb文件夹
mv mongodb-linux-i686-1.8.2 /usr/local/mongodb
创建数据库文件夹与日志文件
mkdir /usr/local/mongodb/data
touch /usr/local/mongodb/logs
======在下一步启动mongodb的时候,有可能提示要安装一些包,如果yum配置是最新最全的话,直接yum install ***(依赖包名) 安装即可!
3. 设置开机自启动
将mongodb启动项目追加入rc.local保证mongodb在服务器开机时启动
echo "/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data –logpath=/usr/local/mongodb/logs –logappend --auth –port=27017" >> /etc/rc.local
4. 启动mongodb
cd到mongodb目录下的bin文件夹启动mongodb
./mongod --dbpath=/mnt/softs/mongodb/data --fork --logpath=/mnt/softs/mongodb/logs
//下面这个是需要权限的登录方式, 用户连接需要用户名和密码
/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs --logappend --auth --port=27017 --fork
//这个是不需要密码的
/usr/local/server/mongodb/bin/mongod --dbpath=/usr/local/server/mongodb/data --logpath=/usr/local/server/mongodb/logs --logappend --port=27017 --fork
3.安装好后通过robomongo连接是连接不上的,包auth fail错误
解决方法:
最近安装了mongodb3.1.4,并启用了权限验证,在dos窗口下操作没有任何问题,为了维护方便就下载了一个客户端工具Robomongo 0.8.5,用户名、密码的等配置好点解测试,结果连接服务没有问题,权限验证没有通过,如图
查看日志,发现有一句:Failed to authenticate admin@admin with mechanism MONGODB-CR: AuthenticationFailed MONGODB-CR credentials missing in the user document
解决思路:在非权限验证状态下 首先,删除已有用户并;其次,修改version表的currentVersion,功能后在重新创建用户
试了各种办法,百度查遍无一个可以解决,没办法只能问谷歌了,最终在一个国外网站发现原来还是mongodb数据库的版本问题,查询版本
操作步骤:
1、删除用户:db.dropUser("admin");
2、修改version:db.system.version.update({ "_id" : "authSchema"},{$set: {"currentVersion" : 3} }) ;
3、重新创建用户:
db.createUser({user:"admin",pwd:"admin",roles:[{"role":"userAdminAnyDatabase","db":"admin"},{"role":"readWrite","db":"test"}]})
4、重启mongdb服务,再次测试,
搞定收工了。
重新创建库,创建库用户!!!
常用命令如下:
1.权限登陆部署启动
/data/database/mongodb3.0.0/bin/mongod --dbpath=/data/database/mongodb3.0.0/data --logpath=/data/database/mongodb3.0.0/logs --logappend --auth --port=27017 --fork
2 .非权限登陆部署启动
/data/database/mongodb3.0.0/bin/mongod --dbpath=/data/database/mongodb3.0.0/data --logpath=/data/database/mongodb3.0.0
/logs --logappend --port=27017
—
fork
3.创建admin库下的管理员用户
db.createUser({user:"vivame",pwd:"vivame",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
4.在创建库之后创建库用户
db.createUser({user:”wwmdb",pwd:”wwmdb",roles:[{role:"readWrite",db:”wwmdb"}]})
多个(用户跟着库走):
db.createUser(
{
user: "bao",
pwd: "12345678",
roles: [
{ role: "readWrite", db: "tianhe" },
{ role: "read", db: "tianhe2" }
]
}
)
5.管理专用命令,返回Mongodb服务器的版本号和主机的操作系统。
db.runCommand({
"buildInfo"
:
1
})
6.复制集合的命令
db.runCommand({cloneCollection:"库名.集合名",from:"ip:端口"})
7.创建root用户
db.createUser(
{
user: "root",
pwd: "123456",
roles: [ { role: "root", db: "admin" } ]
}
);
8.更改用户密码
db.changeUserPassword('root','vivame');