阿里云部署nuxt3+mongodb
阿里云部署nuxt3+mongodb
·
文章目录
mongodb安装的参考文章 阿里云服务器上部署node和mongodb教程
阿里云部署nuxt3+mongodb
一、云服务器安装mongodb
- 安装
# 选择要安装的路径
# 之前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
- 创建mongo配置文件
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
二、mongodb添加管理员用户
- 进入 mongodb 文件夹下的 bin 目录
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'}])
三、nuxt3使用mongodb
我这里使用的是nuxt-mongoose
- 配置
export default defineNuxtConfig({
modules: ['nuxt-mongoose'],
mongoose: {
uri: process.env.MONGODB_URI
}
})
.env 文件
MONGODB_URI='mongodb://root:123456@127.0.0.1:27017/test-db(你要连接的数据库)?authSource=admin'
假如这里部署到服务器上连接数据库报错了可能是没有给 test-db 配置写入权限
进入到云服务器 mongodb/bin目录下
./mongo
mongodb://root:123456@localhost/admin
db.grantRolesToUser("root", [{role: "readWrite", db: "test-db"}]);
四、使用 pm2 管理nodejs进程,运行nuxt3
云服务器上安装
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的进程
更多推荐
所有评论(0)