环境:
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" })
沪公网安备 31011502001064号