将MongoDB数据库从源数据库拷贝到本地.
先开启服务,然后mongo命令进入到数据库。
db.copyDatabase(fromdb, todb, fromhost, username, password, mechanism)
fromdb:源数据库名
todb:给该数据库重命名(可以和源数据库名相同,也可以不同)
fromhost:源数据库地址 ip+port
username:源数据库账号
password:源数据库密码
mechanism: 有 MONGODB-CR or SCRAM-SHA-1这2种 , db.isMaster().maxWireVersion 值大于等于3 那默认就是 SCRAM-SHA-1 否则默认就是 MONGODB-CR
例:
db.copyDatabase(“admin”,“admin”,“10.217.48.99:27017”,“admin”,“123456”,“SCRAM-SHA-1”)
注:如果是同一实例下复制,则可以省略,只需要源数据库名和目标数据库名。
>show dbs(查看当前数据库)
注:拷贝之后的数据库是不会拷贝源数据库的用户的
所以我们给拷贝之后的目标数据库添加用户
> show dbs(查看当前数据名)
> use 数据库名(会出现switched to db 数据库名)
> 查看当前在那个数据库下(db)
> show user(查看当前数据库有哪些用户)
##########因为不会拷贝源数据库用户,所以也不会出现。我们来创建一个 普通用户#########
>db.createUser({
user:“admin”,
pwd:“123456”,
roles:[{role:“readWrite”,db:“数据库名”}]
})
########注:普通用户的权限 无root,可选read,readWrite###########
之后我们启动服务,测试一下连接
本地连接127.0.0.1 默认端口27017,数据库名,账号,密码
连接成功。如果本地连接未成功请检查服务启动情况。
我的电脑-右键-管理-服务-找到MongoDB检查启动状态
####有时候我们会遇到本地可以访问,外网无法访问的状态#####
首先我们检查一下自己的数据库端口是否能连通
> telnet ip 端口(用要访问的本地ip端口测试)
因为该主机我已经改过了,所以127.0.0.1 ip会失败,如果未修改的情况 127.0.0.1 27017会出现dos框全黑,说明可以连通。###### telnet命令无效的 —#####
点击"开始"→"控制器面板"→" 查看方式:类型"则点击"程序"(“查看方式:大图标"则点击"程序和功能”)→ "启动或关闭windows功能"→ 在"Windows功能"界面勾选Telnet服务器和客户端 →最后点击"确定"等待安装。
首先我们删除之前只能本地访问的MongoDB服务
>sc delete 服务名我们进入到MongoDB的bin目录下
>cd D:\MongoDB\Server\4.0\bin
注:在data文件夹下创建db文件夹
>mongod --dbpath “D:\MongoDB\Server\4.0\bin\data\db” --logpath “D:\MongoDB\Server\4.0\log\mongodb.log”
–port 27017 --bind_ip 你的ip --install --serviceName “MongoDB”
> net start mongodb启动成功之后 再次检查端口
>telnet ip port
成功之后会出现dos窗口全黑
到这里复制的数据库就可以完全登录了