# 选择要安装的路径
# 之前nginx安装到etc下,我这里和mongodb放到一起
cd /etc
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.4.tgz
tar zxvf mongodb-linux-x86_64-4.0.4.tgz
# 将解压后的文件夹名称改为 mongodb
mv mongodb-linux-x86_64-4.0.4 mongodb
cd /etc/mongodb
mkdir data/db
mkdir data/logs
cd /etc/mongodb
touch mongodb.conf
vim mongodb.conf
# 端口号
port=27017
#数据目录---上面3创建的
dbpath=/etc/mongodb/data/db
#日志目录
logpath=/etc/mongodb/data/logs/mongodb.log
#设置后台运行
fork=true
#日志输出方式(写日志的模式:设置为true为追加。默认是覆盖。如果未指定此设置,启动时MongoDB的将覆盖现有的日志文件。)
logappend=true
#开启认证(默认是flase,不需要认证的)
auth=true
#对外开放端口(默认是127.0.0.1)
bind_ip=0.0.0.0
按 i 进入编辑模式,完场后按 ESC 后输入:wq保存退出
启动
进入mongodb的bin目录
./mongod --config ../mongodb.conf
启动成功
about to fork child process, waiting until server is ready for connections.
forked process: 18999
child process started successfully, parent exiting
查看mongodb进程ps aux | grep mongodb
安装好就可以使用了,http://公网ip:27107
浏览器中看到这个说明启动好了
It looks like you are trying to access MongoDB over HTTP on the native driver port.
这里不成功查看下是否配置了云服务器的安全组,有没有配置端口 27017
cd /etc/mongodb
./mongo
这里你配置的port不是27017,则要指定端口号 ./mongo --port=27018
> use admin // 切换到admin数据库
switched to db admin
> db.createUser({user:"root",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]}) // 创建用户
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
> db.auth('appAdmin', 'password') // 使用db.auth()验证User是否有权限访问当前数据库
1 // 表示有权限
注意:如果出现类似的错误"errmsg" : "not authorized on admin to execute ,则说明没有权限
解决方案:给用户授予相应的操作权限
db.grantRolesToUser('appAdmin', [{role: 'dbOwner', db:'admin'}])
我这里使用的是nuxt-mongoose
export default defineNuxtConfig({
modules: ['nuxt-mongoose'],
mongoose: {
uri: process.env.MONGODB_URI
}
})
.env 文件
MONGODB_URI='mongodb://root:[email protected]:27017/test-db(你要连接的数据库)?authSource=admin'
假如这里部署到服务器上连接数据库报错了可能是没有给 test-db 配置写入权限
进入到云服务器 mongodb/bin目录下
./mongo
mongodb://root:123456@localhost/admin
db.grantRolesToUser("root", [{role: "readWrite", db: "test-db"}]);
云服务器上安装
cd ~/
npm install pm2 -g
进入nuxt项目文件夹
cd /home/web/nuxt // 我是放到这个目录下,根据个人选择
npm run build
// 打包完成后
pm2 state .output/server/index.mj
几个可能用到pm2命令
pm2 list // 查看pm2管理的进程
pm2 start 0 // 启动 对应id为0的进程
pm2 delete 1 //删除 id为1 的进程
pm2 stop 1 // 停止id为1的进程