close
呼~看了一晚上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分配好。
全站熱搜