宝塔面板配置MonogoDB数据库
1-安装MongoDB
在面板中的【软件商店】搜索MongoDB并安装,推荐下载4.x以上的版本(可视化工具MongoDB Compass对高版本兼容比较好)。
下载完成后,可以点击【设置】,【版本切换】,对MongoDB版本进行切换。
2-配置
(1) mongodb配置
在【配置项中】,对 监听IP 和 监听端口 进行配置。
- 监听IP:由127.0.0.1设置为0.0.0.0,放开IP限制。
- 监听端口:默认27017端口。可以自定义设置端口(建议5001~65535间)。注意需要在服务器安全组和宝塔面板安全组 放行 监听的端口。
在【配置文件】中,根据需要选择是否启用权限验证。
authorization
:默认disabled
,如需要权限验证改为enabled
(注意保留空格)
(2) 安全组放行端口
- 宝塔面板,【安全】,放行端口
- 云服务器,【安全组】添加规则,放行端口
3-设置MongoDB用户名与密码
打开宝塔面板【终端】。
- 连接mongoDB
cd /www/server/mongodb/bin
mongo
- 切换数据库
# use 数据库名称
use test
- 创建root角色,设置账号密码
db.createUser({user:"root",pwd:"123456",roles:["root"]})
- 创建数据库用户角色
db.createUser({user:"user01",pwd:"123456",roles:[{role:"readWrite",db:"test"}]})
- 验证是否添加成功
# db.auth(用户名,用户密码)
db.auth("user01","123456")
如果设置账号密码后,出现如下错误:
Error: couldn't add user: Use of SCRAM-SHA-256 requires undigested passwords.
修改加密方式mechanisms
为SCRAM-SHA-1
即可解决:
# db.createUser({mechanisms:["SCRAM-SHA-1"], ...})
db.createUser({user:"user01",pwd:"123456",roles:[{role:"readWrite",db:"test"}],mechanisms:["SCRAM-SHA-1"]})
注:关于可选角色,可参考
4-创建数据库
完成上面的步骤后,就可以开始创建自己的数据库啦!
5-连接数据库
数据库链接格式为:
mongodb://用户名:密码@服务器公网id:监听端口号/数据库名?参数
mongodb://user:[email protected]:27017/test
后端项目(Nodejs)连接数据库
const host = '服务器公网IP';
const port = 27017;
const dbname = '数据库名';
const username = '数据库角色的用户名';
const pwd = '数据库角色的密码';
mongoose.connect(`mongodb://${username}:${pwd}@${host}:${port}/${dbname}`)
.then(()=>{
console.log('连接成功辣!');
})
.catch(()=>{
console.log('连接失败哦~');
});
如果第4步没有创建数据库,等这里后端服务部署到服务器启动后,MongoDB没有找到对应数据库的话,就会以
dbname
为数据库名,自动创建一个新的数据库哦!
使用MongoDB Compass连接数据库
- 官网安装 MongoDB Compass
MongoDB Compass Download (GUI) | MongoDB
- 填写数据库链接,连接即可
- 连接成功