mongodb 安装、部署及单实例副本集配置
简单配置 mongod.conf
1 2 3 4 5 6 7 8 9 10 11 12
   | fork=true logpath=logs/mongod.log // 日志文件路径 logappend=true // 日志是以append方式追加 dbpath=db      // 数据库本地文件存储地址 nojournal=true noprealloc=true port=10001 // 端口 replSet=michael // 副本集合名称 oplogSize=1024  // oplog大小,这个应该尽可能大,各个子节点与主节点的时间窗口                  smallfiles=true // 小文件存储 auth=true       // 开启用户验证,当开启用户验证是,创建的第一个用户最好为root角色的用户,或者至少应该要有创建其他用户的角色。
   | 
 
通过mongod启动mongodb
1
   | ./bin/mongod  --config mongod.conf
   | 
 
通过mongo进入mongodb
1
   | ./bin/mongo mongodb://localhost:10001/admin
   | 
 
初始化副本集合
1
   | rs.initiate({_id: "michael", members: [{_id: 0, host: "127.0.0.1:10001"}]})
  | 
 
创建管理员
1
   | db.createUser({user: "admin", pwd: "adminpassword", roles: [{role: "root", db: "admin"}]})
  | 
 
退出重新用管理员登录
1
   | ./bin/mongo mongodb://xuqiaomin:adminpassword@localhost:10001/admin
   | 
 
创建oplogger用户
1
   | db.createUser({user: "oplogger", pwd: "oploggerpassword", roles: [{role: "read", db: "local"}]})
  | 
 
创建特定数据库用户
假设使用的数据库名为 meteor
1 2
   | use meteor db.createUser({user: "xuqiaomin", pwd: "xuqiaominpassword", roles: [{role: "readWrite", db: "meteor"}]})
   | 
 
创建的用户访问数据库
1
   | mongodb://xuqiaomin:xuqiaominpassword@localhost:10001/meteor
   | 
 
关闭所有mongodb进程
mongodump备份数据库
一般常用的备份命令格式
mongodump -h IP –port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径
如果想导出所有数据库,可以去掉-d
导出数据库
1
   | mongodump -h localhost --port 10001 -u xuqiaomin -p xuqiaominpassword -d meteor -o /home/mongodb/meteor
   | 
 
mongorestore还原数据库
常用命令格式
mongorestore -h IP –port 端口 -u 用户名 -p 密码 -d 数据库 –drop 文件存在路径
mongorestore -d meteor /home/mongodb/meteor # meteor这个数据库的备份路径
mongoexport导出表,或者表中部分字段
常用命令格式
mongoexport -h IP –port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 -f 字段
1 2 3 4
   | -q 条件导出 --csv -o 文件名 上面的参数好理解,重点说一下: -f 导出指字段,以字号分割,-f name,email,age导出name,email,age这三个字段 -q 可以根查询条件导出,-q '{ "_id" : "10001" }' 导出uid为100的数据 --csv 表示导出的文件格式为csv的,这个比较有用,因为大部分的关系型数据库都是支持csv,在这里有共同点
   | 
 
导出整张表
1
   | mongoexport -d test -c users -o /home/mongodb/meteor/users.dat connected to: 127.0.0.1exported 24 records
   | 
 
导出表中部分字段
1
   | mongoexport -d meteor -c users --csv -f uid,name,sex -o meteor/users.csv connected to: 127.0.0.1exported 24 records
   | 
 
根据条件到处出数据
1
   | mongoexport -d meteor -c users -q '{uid:{$gt:1}}' -o meteor/users.json connected to: 127.0.0.1exported 12 records
  | 
 
mongoimport导入表,或者表中部分字段
1.常用命令格式
1.1 还原整表导出的非csv文件
mongoimport -h IP –port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 –upsert –drop 文件名
重点说一下–upsert,其他参数上面的命令已有提到,–upsert 插入或者更新现有数据
1.2 还原部分字段的导出文件
mongoimport -h IP –port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 –upsertFields 字段 –drop 文件名
1.3 还原导出的csv文件
mongoimport -h IP –port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 –type 类型 –headerline –upsert –drop 文件名
上面三种情况,还可以有其他排列组合的。
2.还原导出的表数据
1
   | mongoimport -d test -c users --upsert test/users.dat connected to: 127.0.0.1............
   | 
 
3.部分字段的表数据导入
1
   | mongoimport -d test -c users  --upsertFields uid,name,sex  test/users.dat  connected to: 127.0.0.1...............................................
   | 
 
4.还原csv文件
1
   | mongoimport -d test -c users --type csv --headerline --file test/users.csv connected to: 127.0.0.1...........................................
   |