MongoDB_4.4 安装和配置
<h4 id="mongodb4xxx-安装与配置">MongoDB4.xxx 安装与配置</h4><p>1、社区版 下载地址 www.mongodb.com/download-center/community ;<br>
"install mongoDB compass" 不勾选;勾选后悔安装这个数据库管理工具;可以自定义目录;其他默认;</p>
<p>2、配置环境变量<br>
安装目录下的 bin 目录 ; 如:C:\z_MongoDB\bin;配置到系统环境变量中(控制面板\系统和安全\系统\高级系统设置\环境变量;<br>
会自动添加到服务中了;重启运行命令 services.msc(window10)打开服务界面,此时已经自动添加到系统服务里面了,每次开机自动重启</p>
<p>3、创建超级管理员账户</p>
<pre><code>use admin
db.createUser({
user:'admin',
pwd:'123456',
roles:[{role:'root',db:'admin'}]
})
删除超级账户:db.dropUers('admin');
C:\z_MongoDB\bin\mongod.cfg 找到这个配置文件放开 security表示开启权限验证
这个文件有严格的格式,注意空格(1053错误,无法重启)
security:
authorization: enabled
注意:authorization 冒号 后面有个空格 去掉或多加一个空格都会报错;
</code></pre>
<p>4、用超级管理员账户连接数据库(用命令行)<br>
mongo admin -u 用户名-p 密码<br>
mongo 192.168.1.200:27017/test -u user -p password<br>
其他链接方式:const url = 'mongodb://admin:123456@localhost:27017/';</p>
<p>5、使用超级管理员登录后,给某个数据库单独创建用户名,密码,及权限</p>
<pre><code>use 数据库名
db.createUser({
user:"eggadmin",
pwd:"123456",
roles:[{role:"dbOwner",db:"eggcms"}]
})
</code></pre>
<p>6、数据库角色分类<br>
(1)数据库用户角色:read、readWrite;<br>
(2)数据库管理角色:dbAdmin、dbOwner、userAdmin;<br>
(3)集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;<br>
(4)备份恢复角色:backup、restore;<br>
(5)所有数据库角色: readAnyDatabase、readWriteAnyDatabase、 userAdminAnyDatabase、dbAdminAnyDatabase<br>
(6)超级用户角色:root</p>
<p>7、基本管理命令<br>
1、show users; // 查看当前库下的用户<br>
2、db.dropUser("eggadmin") // 删除用户<br>
3、db.updateUser("admin",{pwd:"password"});// 修改用户密码<br>
4、db.auth("admin","password"); // 密码认证 (数据库设置了密码,要认证后才能连接成功)<br>
5、show tables // 列出该库下所有表</p>
<p>8、导出与恢复<br>
MongoDB 4.4版本 之后 MongoDB数据库工具现在与MongoDB服务 分开发布 需要单独安装<br>
1. 下载地址<br>
2. windwos 下载后解压,配置到环境变量 path 中,然后就可以使用 mongodump、 mongorestore、 mongoimport、 mongoexport 命名来备份了<br>
3. 在导入其他人的库后,应该清空 -->该库下的用户 -->再创建用户后再链接;</p>
<pre><code>备份单个表
mongodump -usuperuser -p 123456--port 27017 --authenticationDatabase admin -d myTest -c d -o /backup/mongodb/myTest_d_bak_201507021701.bak
备份单个库
mongodump-usuperuser -p 123456 --port 27017--authenticationDatabase admin -d myTest -o/backup/mongodb/
备份所有库
mongodump-usuperuser -p 123456 --authenticationDatabase admin--port 27017 -o /root/bak
备份所有库推荐使用添加--oplog参数的命令,这样的备份是基于某一时间点的快照,只能用于备份全部库时才可用,单库和单表不适用:
mongodump -h 127.0.0.1 --port 27017 --oplog -o/root/bak
同时,恢复时也要加上--oplogReplay参数,具体命令如下(下面是恢复单库的命令):
mongorestore-d swrd --oplogReplay/home/mongo/swrdbak/swrd/
恢复单个库:
mongorestore-usuperuser -p 123456 --port 27017--authenticationDatabase admin -d myTest /backup/mongodb/
恢复所有库:
mongorestore -usuperuser -p 123456 --port 27017--authenticationDatabase admin/root/bak
恢复单表
mongorestore -usuperuser -p 123456--authenticationDatabase admin -d myTest -c d /backup/mongodb/myTest_d_bak_201507021701.bak/myTest/d.bson
注意:
1.mongorestore恢复数据默认是追加,如打算先删除后导入,可以加上--drop参数,不过添加--drop参数后,会将数据库数据清空后再导入,如果数据库备份后又新加入了数据,也会将新加的数据删除,它不像mysql有一个存在的判断
2.mongodump在mongo关闭时,也是可以备份的,不过需要指定数据目录,命令为:mongodump--dbpath/data/db
</code></pre>
<p>9、mongodump与mongoexport的区别:</p>
<pre><code> 1. mongodump导出的是bson格式,是二进制形式,不过可以使用mongo自带的bsondump命令查看里面的数据,而mongoexport导出的则是文本,可以是csv、json格式。
2. JSON可读性强但体积较大,BSON则是二进制文件,体积小但对人类几乎没有可读性。
3. 在一些mongodb版本之间,BSON格式可能会随版本不同而有所不同,所以不同版本之间用mongodump/mongorestore可能不会成功,具体要看版本之间的兼容性。
当无法使用BSON进行跨版本的数据迁移的时候,使用JSON格式即mongoexport/mongoimport是 一个可选项。跨版本的mongodump/mongorestore个人并不推荐,实在要做请先检查文档看两个版本是否兼容(大部分时候是的)
4. JSON虽然具有较好的跨版本通用性,但其只保留了数据部分,不保留索引,账户等其他基础信息。使用时应该注意。
</code></pre><br><br>
来源:https://www.cnblogs.com/kgwei520blog/p/13652299.html
頁:
[1]