一、前言
本系列文章旨在总结和记录本人在学习和探索MongoDB的过程,文中将详细列出各操作步骤和遇到问题的解决方案。
环境:
1)、客户端在windows10,使用mongodb compass;
2)、服务端部署在linux,ubuntu 16.04中;
学习过程参考文章:https://www.runoob.com/mongodb/mongodb-tutorial.html
二、MongoDB Server配置和启动
1、下载压缩文件链接:https://www.mongodb.com/try/download/community
可以下载到windows电脑本地,然后拷贝到linux环境中,也可以使用在linux的终端中执行命令:wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-4.4.2.tgz下载压缩文件。
2、将下载或拷贝的文件剪切到linux的Home文件夹下,本人的路径为:/home/shelman。当前目录下开启终端,执行命令:tar -zxvf mongodb-linux-x86_64-ubuntu1604-4.4.2.tgz,然后重命名刚刚的解压后的文件夹为mongodb4,如下图:
3、如果有必要,需要安装curl和openssl,终端依次执行如下命令:
sudo apt-get install libcurl3 openssl
4、配置mongodb环境变量永久生效,终端依次执行如下命令:
cd ~/
vim .bashrc
然后在文档末,添加PATH=$PATH:/home/shelman/mongodb4/bin,保存退出
source .bashrc,生效,如果只是临时生效,可以参加菜鸟教程中的:export PATH=/home/shelman/mongodb4/bin:$PATH
5、创建数据库相关目录
数据存储目录:/var/lib/mongodb
日志文件目录:/var/log/mongodb
终端依次执行如下命令:
sudo mkdir -p /var/lib/mongodb
sudo mkdir -p /var/log/mongodb
sudo touch /var/log/mongodb/mongodb.log
sudo chown 'shelman' /var/lib/mongodb
sudo chown 'shelman' /var/log/mongodb
6、启动MongoDB服务,执行命令:mongod --dbpath /var/lib/mongodb --logpath /var/log/mongodb/mongodb.log --fork,,查看mongodb.log日志,启动成功信息如下:
在windows中使用compass连接测试,输入:mongodb://172.16.3.39:27017/?maxPoolSize=10,发现连不上。
使用端口查看命令(netstat -ntlp),结果如下:
分析得出,该服务没有对所有网段开放,于是查阅资料,需要换一种方式启动
7、通过配置文件方式启动
1)、创建配置文件路径:
终端依次执行命令:
sudo mkdir -p /var/etc/mongodb
sudo touch /var/etc/mongodb/mongodb.conf
sudo chown 'shelman' /var/etc/mongodb
然后在mongodb.conf中输入如下信息:
dbpath=/var/lib/mongodb
logpath=/var/log/mongodb/mongodb.log
logappend=true
port=27017
bind_ip=0.0.0.0
fork=true
journal=false
保存退出
2)、启动服务:
终端执行命令:
mongod --config /var/etc/mongodb/mongodb.conf
使用compass连接,输入:mongodb://172.16.3.39:27017/?maxPoolSize=10,成功。
8、如果要设置权限访问某个数据库,mongodb.conf修改为:
dbpath=/var/lib/mongodb
logpath=/var/log/mongodb/mongodb.log
logappend=true
port=27017
bind_ip=0.0.0.0
fork=true
journal=false
auth=true
保存后重启服务
在mongodb服务路径下(本人路径为:/home/shelman/mongodb4/bin)开启终端,输入命令./mongo,执行mongo程序:
输入use testdb,切换到testdb数据库,添加用户:db.createUser({user:"root",pwd:"abc123",roles:["root"]})