MongoDb 安装
- 安装MongoDb 的服务
命令如下: (cmd以管理员运行)
使用 config文件则非常简洁:
mongod -config c:\CMongoDb703\mongo.config -serviceName “CMongoDb703” -serviceDisplayName “CMongoDb703” -install
注意 mongo.config 文件要写好
例如:
storage:
dbPath: C:\CMongoDb703\datas
directoryPerDB: true
systemLog:
destination: file
quiet: true
path: C:\CMongoDb703\logs\mongod.log
logAppend: false
net:
port: 26016
security:
authorization: disabled
#authorization: enabled
mongodb 7.0.3 bin目录下有vc_redist.x64.exe,如果安装服务失败,先运行这个vc_redist
接着安装 mongosh
命令行输入
mongosh “mongodb://localhost:12345”
在admin中创建root用户sa的JS脚本:
//必须禁用 authorization
var db = db.getSiblingDB('admin');
db.createUser({
user: "sa",
pwd: "123456",
roles: [{ role: "root", db: "admin" }]
});
load 脚本:
关闭服务,修改config文件 authorization: enabled
重启服务
之后可以批量创建各个数据库的用户,例如:
var adminDB = db.getSiblingDB('admin');
adminDB.auth('sa', '123456');
// 数据库列表
var prefix = "TickDataExs";
var suffixes = "SH,SZ,CFE,SHF,INE,DCE,CZC,GFE,BJ".split(',');
// 生成数据库列表
var databases = suffixes.map(function(suffix) {
return prefix + "_" + suffix;
});
// 用户信息
var users = [
{ username: 'reader', password: '1', role: 'read' },
{ username: 'writer', password: '1', role: 'readWrite' }
];
// 为每个数据库创建用户
databases.forEach(function(dbName) {
var currentDb = db.getSiblingDB(dbName);
users.forEach(function(user) {
// 检查用户是否已存在
if (!currentDb.getUser(user.username)) {
currentDb.createUser({
user: user.username,
pwd: user.password, // 替换为强密码
roles: [{ role: user.role, db: dbName }]
});
}
});
});