呼~看了一晚上mongo-java-driver的源码也没找到异常在哪
- com.mongodb.MongoException: unauthorized db:test lock type:-1 client:192.168.72.1
后来想来想去,复制集使用keyfile相互连接,按说不用密码确实不应该连接成功,可惜在公司竟然成功了,我去~~百思不得其解。
以上牢骚,复制集搭建(单台机器测试),以下:1、初始化环境
- useradd mongo
-
mkdir -p /export/data/mongodb_data
-
mkdir -p /export/data/logs
-
mkdir -p /export/data/key
-
chown mongo.mongo /export/data/*
-
su - mongo
-
mkdir -p mongodb_data/r0
-
mkdir -p mongodb_data/r1
-
mkdir -p mongodb_data/r2
2、 生成keyfile
- echo "AABIwAAAQEArfcoYJYsGYg62tHn31uuJMr6AXPr0rVA3Hkk" > /export/data/key/r0
-
echo "AABIwAAAQEArfcoYJYsGYg62tHn31uuJMr6AXPr0rVA3Hkk" > /export/data/key/r1
-
echo "AABIwAAAQEArfcoYJYsGYg62tHn31uuJMr6AXPr0rVA3Hkk" > /export/data/key/r2
-
chmod 600 /export/data/key/*
3、启动mongo
- mongod --replSet rstest --keyFile /export/data/key/r0 --port 20011 --dbpath /export/data/mongodb_data/r0/ --logpath /export/data/logs/r0.log --logappend --oplogSize 100 --rest --directoryperdb --maxConns 200 --fork
-
mongod --replSet rstest --keyFile /export/data/key/r1 --port 20012 --dbpath /export/data/mongodb_data/r1/ --logpath /export/data/logs/r1.log --logappend --oplogSize 100 --rest --directoryperdb --maxConns 200 --fork
-
mongod --replSet rstest --keyFile /export/data/key/r2 --port 20013 --dbpath /export/data/mongodb_data/r2/ --logpath /export/data/logs/r2.log --logappend --oplogSize 100 --rest --directoryperdb --maxConns 200 --fork
4、初始化
- mongo --port 20011
-
> config = {_id: 'rstest', members: [{_id: 0, host: '127.0.0.1:20011'},{_id: 1, host: '127.0.0.1:20012'},{_id: 2, host:'127.0.0.1:20013'}]}
-
> rs.initiate(config)
-
> rs.status()
大概1分钟才会看到Primary和Secondary分配好。
阅读(3979) | 评论(0) | 转发(0) |