零,前言
想实现在服务器部署mongodb数据库,同时在本地进行访问。
结果网上的资料比较乱,还好最后实现了,在此记录一下,方便以后查看。
一,Linux和windows安装与配置
- Linux版
- 首先下载
wget 下载地址
本号 | 链接库 (根目录:lib(32) && lib64(64)) |
suse | libcrypto.so.1.1 libssl.so.1.1 |
mazon | libcrypto.so.10 libssl.so.10 |
通过 ldd ./bin/mongod (移动到mongodb目录) 查看对应链接库是否缺失
- 解压
tar -xvzf 文件名 //解压
mv mongodb /usr/local/ //将解压后的文件移动到指定目录并改名
cd /usr/local/mongodb/ //切换到mongodb
- 在mongodb目录下创建目录data/db ,以及/log目录
mkdir data //创建data目录
mkdir log //创建log日志目录
cd data //切换到data目录
mkdir db //创建db 目录
- 配置环境
vi /etc/profile // 打开profile文件
# mongodb环境配置
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
- 修改后,更新配置
source /etc/profile
- 在mongodb目录下创建conf目录,并创建mongodb.conf配置文件,并配置
cd /usr/local/mongodb/ //切换到mongodb
mkdir conf //创建conf目录
cd conf //切换到conf
touch mongodb.conf //创建mongodb.conf配置文件
vi mongodb.conf //编辑mongodb.conf配置
dbpath = /usr/local/mongodb/data/db #数据文件存放目录
logpath = /usr/local/mongodb/log/mongodb.log #日志文件存放目录
logappend=true #以追加的方式记录日志
#外网访问时记得 防火墙放行对应端口
port = 8888#根据自己需求修改
bind_ip = 0.0.0.0 #可使用逗号(,)分隔多个ip
auth = true #开启客户端认证
fork = true #以守护程序的方式启用,即在后台运行
- 关于Linux的mongodb的配置文档
- 启动mongodb服务
cd /usr/local/mongodb/ //切换到mongodb
./bin/mongod --config ./conf/mongodb.conf //启动服务
- 有可能启动不了
报错
/usr/local/mongodb/bin/mongo: /lib64/libcrypto.so.10: version
`OPENSSL_1.0.2’ not found (required by /usr/local/mongodb/bin/mongo)
报错
lib64 libc so 6 version `GLIBC_2 18’ not found
- 解决办法
- Windows版
- 首先下载
下载地址 - 安装
- 根据自己的安装目录找到 /bin/mongod.cfg
(默认安装目录:C:\Program Files\MongoDB\Server\4.2\bin) - 关于Windows的mongodb的配置文档
- 我的配置
storage:
dbPath: C:\Program Files\MongoDB\Server\4.2\data
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: C:\Program Files\MongoDB\Server\4.2\log\mongod.log
net:
port: 8888
bindIp: 0.0.0.0,127.0.0.1
#开启验证
security:
authorization: enabled # enabled/disabled #开启客户端认证
- 把mongodb设置成Windows服务
// 根据自己安装目录 进行路径调整
"C:\Program Files\MongoDB\Server\4.2\bin\mongod.exe" --config "C:\Program Files\MongoDB\Server\4.2\bin\mongod.cfg" -install -serviceName "MongoDB"
- 启动,停止服务
net start 服务名
net stop 服务名
二,配置mongodb用户
- 注意先创建用户,再开启认证
- 通过命令行来访问mongodb数据库
#没有配置端口并且访问本地
mongo
#配置端口或者非本地访问
mongo ip:port
mongo 127.0.0.1:8888
mongo 127.0.0.1 --port=8888
- 在配置登录验证时,先创建一个root账号
db.createUser({
"user": "admin", #用户名
"pwd": "adminpwd", #密码
"roles": [ #配置权限以及对应的数据库
{
"role": "root", #root权限
"db": "admin" #数据库
}
]
})
- 接着创建一个新的数据库
use lcnoob #创建一个新的数据库
#此时使用 show dbs 并没有显示,需要向数据库写入点数据
db.show.insert({"name":"lcnoob"})})))
#此时通过 show dbs 就能显示刚刚创建的数据库
#或者通过可视化工具创建数据库
- 给新数据库创建用户并赋予权限
db.createUser({
"user":"showuser",
"pwd":"showpwd",
"roles":[
{
"role":"readWrite",
"db":"show"
}
]
})
- 此时开启认证
- 在连接数据库时进行认证
mongo 127.0.0.1:8888/show -u showuser -p
#回车后会提示输入密码
#或者先进入数据库
#通过 auth命令来进来认证 认证前先进入对应的数据库
use show
db.auth("showuser","showpwd")
- 此时就可以进行远程连接了