Mac OSX 平台安装 MongoDB

本文详细介绍了在Mac OS X上安装MongoDB的步骤,包括使用brew安装,配置文件路径,以及如何开启、停止服务。还讲解了MongoDB的基本概念,如数据库、集合和文档,并阐述了如何配置用户名和密码,以及MongoDB开机启动的设置。最后,展示了如何通过shell操作数据库并保存数据。
摘要由CSDN通过智能技术生成

一、Mac OSX 平台安装 MongoDB
参考

// 下载地址 https://www.mongodb.com/try/download/community

// 安装参考地址 https://www.runoob.com/mongodb/mongodb-osx-install.html

一、brew tap mongodb/brew

// 安装之前确保在 /usr/local/var/log 文件夹有读写权限
// @ 符号后面的 4.4 是最新版本号。
二、brew install mongodb-community@4.4

// 安装信息

  • 配置文件:/usr/local/etc/mongod.conf
  • 日志文件路径:/usr/local/var/log/mongodb
  • 数据存放路径:/usr/local/var/mongodb

三、开始、停止、后台开启

brew services start mongodb/brew/mongodb-community
brew services stop mongodb/brew/mongodb-community

mongod --config /usr/local/etc/mongod.conf --fork // 后台开子进程开启
// 子进程开启之后如果需要关闭 可以进入 mongo shell 控制台来实现

// db.adminCommand({ “shutdown” : 1 })

四、通过终端进行命令行操作
cd /usr/local/bin
./mongo
Eg:
在这里插入图片描述

二、MongoDB 概念解析
参考链接

// https://www.runoob.com/mongodb/mongodb-databases-documents-collections.html

SQL术语/概念 MongoDB术语/概念 解释/说明
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
table joins 表连接,MongoDB不支持
primary key primary key 主键,MongoDB自动将_id字段设置为主键

一、和传统的数据库进行对比

在这里插入图片描述

二、基本概念
数据库
一个mongodb中可以建立多个数据库。
MongoDB的默认数据库为"db",该数据库存储在data目录中。
MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。
“show dbs” 命令可以显示所有数据的列表。

三、mongodb 配置用户名、密码
参考地址:

// https://blog.csdn.net/weixin_41238134/article/details/100069106

一、查看当前是否开启用户名密码

// 注释了代表没有开启用户名和密码认证
// 没有注释代表开启了用户名和密码认证
在这里插入图片描述

二、开启用户名和密码认证(创建用户均需进入admin数据库)

1、进入数据库shell
./usr/local/bin/mongo

2、切换到admin数据库
use admin

3、查看当前是否存在账户
show users

4、创建管理员账户
db.createUser({user:”zhangyanan”,pwd:”zhangyanan”,roles:[“root”]})

在这里插入图片描述

5、配置文件开启用户名和密码认证

注意出现错误
// uncaught exception: SyntaxError: illegal character : 是因为复制导致的 引号非英文

6、配置/usr/local/etc/mongo.conf开启权限认证

在这里插入图片描述

7、进行重启 brew services start mongodb/brew/mongodb-community

如果出现错误信息

mongodb报错1: connecting to:mongodb://127.0.0.1:27017. connect failed

就是这个时候没有启动mongod

sudo ./mongod -dbpath /usr/local/var/mongodb

8、mac 下将mongodb开机启动

创建一个plist文件
在/Library/LaunchDaemons目录下

sudo vi mongodb.plist

<?xml version='1.0' encoding='UTF-8'?> Label mongodb ProgramArguments /usr/local/mongodb/bin/mongod run --config /usr/local/mongodb/bin/mongodb.conf RunAtLoad KeepAlive WorkingDirectory /usr/local/mongodb StandardErrorPath /usr/local/mongodb/log/error.log StandardOutPath /usr/local/mongodb/log/output.log

启动服务
sudo launchctl load -w /Library/LaunchDaemons/mongodb.plist

关闭服务
sudo launchctl unload -w /Library/LaunchDaemons/mongodb.plist

参考链接
// https://www.jianshu.com/p/3bedd7f044dc

四、进入mongo shell 操作
参考:

cd /usr/local/bin
./mongo --username zhangyanan --password zhangyanan

在这里插入图片描述

五、进行将数据库保存
参考下面例子

在这里插入图片描述

在这里插入图片描述

const { strict } = require(‘assert’);
const mongoose = require(‘mongoose’);
const { stringify } = require(‘querystring’);
const util = require(‘util’);

function DBconnect(mongoose) {
return new Promise((resolve, reject) => {
mongoose.connect(“mongodb://zhangyanan:zhangyanan@127.0.0.1:27017/dbTest1?serverSelectionTimeoutMS=5000&connectTimeoutMS=10000&authSource=admin&authMechanism=SCRAM-SHA-1&3t.uriVersion=3&3t.connection.name=zynlocal&3t.alwaysShowAuthDB=true&3t.alwaysShowDBFromUserRole=true”, {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
useCreateIndex: true
}, (info) => {
if (info) {
reject(info)
} else {
resolve(mongoose);
util.log(!info ? ‘数据库链接成功’ : info);
}
});
})
}
DBconnect(mongoose).then((mons) => {
const Schema = mons.Schema; // Schema 摘要、纲要的意思

const loginSch = new Schema({ username:String, password:String }); // 创建表结构

// 下面的第三个参数是表的名字如果不写,默认使用model名称的复数,则是 logins
const login = mongoose.model(‘login’, loginSch, ‘logins’); // 将表结构和model关联起来进行数据操作

const user = new login({username: ‘犬夜叉1’, password: ‘123456’}); // 将插入数据当做参数传递给model

user.save((info)=> {util.log(info)}) // 执行操作保存数据

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值