阿里云Centos7.3服务器安装MongoDB非关系数据库,并向Collection导入数据

1.注意事项

  1. mongoDB安装成功后,创建数据库后,创建collection提示没有权限:
    error inserting documents: not authorized on imooc to execute command { insert: “users”, writeConcern: { getLastError: 1, w: 1 }, ordered: false, $db: “imooc” }
    或者为collection创建用户角色时候提示:
    Error: couldn’t add user: there are no users authenticated

原因: mongodb配置文件,mongodb.conf开启了权限认证,将auth=true,改为false,重启mongoDB服务。

  1. node.js后端上传成功后,开启对应端口,记得进入node后端项目bin目录下,启动www
    否则引发如下错误:
    [HPM] Error occurred while trying to proxy request /goods/list?page=1&pageSize=8&sort=1&priceLevel=all from localhost:8081 to http://47.93.118.61:8000 (ECON
    NREFUSED) (https://nodejs.org/api/errors.html#errors_common_system_errors)

2.mongDB的安装

1.mongoDB安装:
$ wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.6.17.tgz

解压到/usr/local/目录下:

$ sudo tar -zvxf mongodb-linux-x86_64-rhel70-3.6.17.tgz -C /usr/local/
$ mv mongodb-linux-x86_64-4.0.0 mongodb   //重命名

配置环境变量:

$ vim /etc/profile

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 一行的上面添加如下内容:

export PATH=/usr/local/mongodb/bin:$PATH   //注意mongodb解压后的路径

或者配置该文件(原因自行百度):

$ sudo vim ~/.bashrc

同样添加上述export内容至文末。

保存后通过下述命令使环境变量生效

$ cd ~
$ source /etc/profile   //source自己编辑的环境变量文件
2.创建数据库目录
$ cd /usr/local/mongodb
$ touch mongodb.conf  //创建配置文件
$ mkdir data  //创建数据存放目录
$ mkdir log  //创建日志目录
$ cd log
$ touch mongodb.log  //创建日志文件

修改mongodb配置文件。

$ vim /usr/local/mongodb/mongodb.conf

加入以下内容:

port=27017 #端口
dbpath= /usr/local/mongodb/data #数据库存文件存放目录
logpath= /usr/local/mongodb/log/mongodb.log #日志文件存放路径
logappend=true #使用追加的方式写日志
fork=true #以守护进程的方式运行,创建服务器进程
maxConns=100 #最大同时连接数
journal=true #每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。
#即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复。
storageEngine=wiredTiger  #存储引擎有mmapv1、wiretiger、mongorocks
bind_ip = 0.0.0.0  #这样就可外部访问了
auth = false        #校验权限,注意权限校验初次不要开启,否则难以为数据库创建用户,用户创建成功后,再改为true,重启mongoDB服务

设置文件夹权限

$ cd /usr/local/mongodb
$ chmod 777 db  //最高权限,读写执行
$ chmod 777 log
3.mongodb的启动与关闭
  • 注意nginx配置文件路径
$ cd ~
$ mongod --config /usr/local/mongodb/mongodb.conf  --auth  //--auth,以权限验证方式启动

关闭数据库

$ ps aux |grep mongodb  
$ sudo kill 进程ID       //   进程id一般为第二竖行显示的这个,如下图ID为10046

eg: 第二列就是进程ID

root     10046  0.2  4.4 1028816 84688 ?       SLl  Jun17   1:34 mongod --config /usr/local/mongodbx86_64_3.6.17/mongodb.conf --auth
root     12935  0.0  0.0 112648   968 pts/0    S+   10:03   0:00 grep --color=auto mongodb

4.mongoDB数据库添加用户角色

eg: 创建imooc数据库,并添加数据库权限,(创建一个用户,赋予用户root权限)

db.createUser(
	{
		user:"root",
		pwd:"123456",
		roles:[{role:"root",db:"imooc"}]
	}
);

验证是否创建成功:

db.auth("root","123456");//账号和密码

附:添加用户时各个角色对应权限

  1. 数据库用户角色:read、readWrite;
  2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
  3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
  4. 备份恢复角色:backup、restore
  5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
  6. 超级用户角色:root

查找数据库信息: 以数据库imooc的goods表集合为例

db.goods.find() //不带参数匹配所有数据
db.goods.findOne()//不带参数匹配所有数据,并格式化输出

3.本地MongoDB数据库Collections的JSON文件导出

  1. 本地数据中的集合打包成json文件,不带数据库用户密码
    使用时替换对应数据库名和集合名
mongoexport -d database_name -c collection_name -o C:\Users\zhang\Desktop\collection_name.json --type=json

  1. 带密码的打包:
mongoexport -u username -p password -d database_name -c collection_name -o C:\Users\zhang\Desktop\collection_name.json --type=json

4.服务器MongoDB数据库Collections的JSON文件导入

  1. 首先,将上一步打包后的json文件通过xftp等工具上传至服务器

  2. 进入到mongdb安装位置的bin目录下(未建立环境变量,无法全局使用该命令),执行下面命令
    无用户名和密码的数据库

mongoimport --db  database_name --collection collection_name --file /file/collection.json

  1. 有用户名和密码的数据库
mongoimport -u username -p password --db  database_name --collection collection_name --file /file/collection.json

5. 将远程数据库的collection直接导入到本地

mongoexport -h 远程服务器的IP地址 --port 端口号 -u user_name -p password -d database_name -c collection_name --type json --out C:\Users\zhang\Desktop\data.json

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值