环境:
mongodb3.2
1.mongodb连接
#连接本地mongodb mongo #连接本地mongodb,指定端口 mongo 127.0.0.1:27017 #连接本地mongodb,指定端口和账号 mongo 127.0.0.1:27017/admin -u sa -p
2.数据库切换
#显示所有数据库 show dbs; #切换到数据库 use admin; #显示所有的collection show collections;
3.增加账号
#这是旧版本的增加账号方式 db.addUser('sa','sa'); #新版本使用以下方式,来增加账号 #可以参考https://docs.mongodb.org/manual/reference/method/db.createUser/#create-administrative-user-with-roles db.createUser( { user: "sa", pwd: "sa", roles: [ "__system","backup","clusterAdmin","dbAdminAnyDatabase","readWriteAnyDatabase","userAdminAnyDatabase" ] } ); #验证账号是否增加成功:1为正常,0为失败 db.auth("sa","sa");
此处注意。
如果使用的是mongo3.2,需要兼容2.x版本的连接客户端时,需要将创建账号的密码加密等级调整一下。
因为2.x版本的密码加密方式是【MONGODB-CR】,3.x版本的加密方式是【SCRAM-SHA-1】。
使用2.x版本的jdbc连接3.x版本也会有同样的问题。
会出现【authenticate failed】的问题。
修改方法:
#给管理员赋予【__system】的角色 #切换到admin数据库 use admin #执行下面的代码 var schema = db.system.version.findOne({"_id" : "authSchema"}) schema.currentVersion = 3 #将会输出3 #保存该记录 db.system.version.save(schema) #成功将输出WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) #接下来重启数据库,就可以开始创建用户了。 #创建之后,查看一下密码的加密方式 use admin db.system.users.find({"user":"sa"}) #结果类似如下即可 #{ "_id" : "userdb.myuser", "user" : "sa", "db" : "userdb", "credentials" : { "MONGODB-CR" : ... } #原来的为 #{ "_id" : "userdb.myuser", "user" : "sa", "db" : "userdb", "credentials" : { "SCRAM-SHA-1" : ... }
#删除用户 use admin db.system.users.remove({user:"sa"}); #修改用户密码(为已经存在的用户更改密码) db.addUser("sa","sa"); #用户授权 db.auth("sa","sa");
4.数据库,以及collection相关操作
#删除数据库abc use abc; db.dropDatabase(); #给collection【stu】增加一条记录 db.stu.save( {username:"s01"} ); #查询collection【stu】的记录 db.stu.find();
5.export导出mongodb
#导出整个mongo #mongodump -h IP --port 端口 -u 用户名 -p 密码 -o 文件存在路径(文件夹) > 导出过程.txt 2>&1 mongodump -h 127.0.0.1 --port 27017 -u sa -p sa -o /home/mongodump > ./dump.txt 2>&1 #如果报错,auth failed,加上 --authenticationDatabase admin即可 mongodump -h 127.0.0.1 --port 27017 -u sa -p sa --authenticationDatabase admin -o /home/mongodump > ./dump.txt 2>&1 #导出某个数据库 #mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径(文件夹) > 导出过程.txt 2>&1 mongodump -h 127.0.0.1 --port 27017 -u sa -p sa -d local -o /home/mongodump > ./dump.txt 2>&1 #如果报错,auth failed,加上 --authenticationDatabase admin即可 mongodump -h 127.0.0.1 --port 27017 -u sa -p sa -d local --authenticationDatabase admin -o /home/mongodump > ./dump.txt 2>&1 #导出某个数据库中的某个collection #mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c collection名 -o 文件存在路径(文件夹) > 导出过程.txt 2>&1 mongodump -h 127.0.0.1 --port 27017 -u sa -p sa -d local -c test -o /home/mongodump > ./dump.txt 2>&1 #如果报错,auth failed,加上 --authenticationDatabase admin即可 mongodump -h 127.0.0.1 --port 27017 -u sa -p sa -d local -c test --authenticationDatabase admin -o /home/mongodump > ./dump.txt 2>&1
6.import导入mongodb
#导入整个mongo #mongorestore -h IP --port 端口 -u 用户名 -p 密码 文件存在路径(文件夹) > 导入过程.txt 2>&1 mongorestore -h 127.0.0.1 --port 27017 -u sa -p sa /home/restore > ./restore.txt 2>&1 #如果报错,auth failed,加上 --authenticationDatabase admin即可 mongorestore -h 127.0.0.1 --port 27017 -u sa -p sa --authenticationDatabase admin /home/restore > ./restore.txt 2>&1 #导入某个数据库 #mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径(文件夹) > 导入过程.txt 2>&1 mongorestore -h 127.0.0.1 --port 27017 -u sa -p sa -d local /home/restore > ./restore.txt 2>&1 #如果报错,auth failed,加上 --authenticationDatabase admin即可 mongorestore -h 127.0.0.1 --port 27017 -u sa -p sa -d local --authenticationDatabase admin /home/restore > ./restore.txt 2>&1 #导入某个数据库中的某个collection #mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c collection名 -o 文件存在路径(文件夹) > 导入过程.txt 2>&1 mongorestore -h 127.0.0.1 --port 27017 -u sa -p sa -d local -c test /home/restore > ./restore.txt 2>&1 #如果报错,auth failed,加上 --authenticationDatabase admin即可 mongorestore -h 127.0.0.1 --port 27017 -u sa -p sa -d local -c test --authenticationDatabase admin /home/restore > ./restore.txt 2>&1
7.启动/停止mongodb
#启动 /home/mongodb57020/mongodb-linux-x86_64-rhel62-3.2.4/bin/mongod -f /home/mongodb57020/mongod.conf #停止 /home/mongodb57020/mongodb-linux-x86_64-rhel62-3.2.4/bin/mongod -f /home/mongodb57020/mongod.conf --shutdown
8.MongoDB释放硬盘空间
db.runCommand({ compact: "需要释放磁盘空间的collection" })