MongoDB是一个基于分布式文件存储的数据库,是目前比较流行的NoSQL数据库之一。也有说它是非关系数据库当中功能最丰富,最像关系数据库的NoSQL数据库。目前最新的版本为4.2.1。
系统环境
- 操作系统
Ubuntu18.04LTS桌面版,如果没有,可以参考这里安装Ubuntu18.04LTS - 辅助工具
Vim文本编辑器,系统自带,如果没有安装,可在终端(可使用快捷键Ctrl+Alt+T打开)执行以下命令安装
sudo apt install vim //安装vim
vim --version //安装好之后,可以执行此命令查看安装的vim版本
- 网络
使用无线Wifi连接网络
注意事项
- 防火墙
系统安装后,如果开启了防火墙,对于需要进行远程访问的软件如Web应用服务器和数据库等,可能需要设置防火墙开放对应的端口
安装MongoDB
- 检查是否已安装
打开终端,使用以下命令检查是否已经安装了MongoDB
sudo apt list --installed | grep mongodb
如果已经安装,可以使用以下命令卸载之后重新安装
sudo apt remove mongodb
sudo apt purge mongodb
- 安装
首先导入key
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
如果出现未安装gnupg错误提示,先安装gnupg或gnupg2,然后再重新导入key
sudo apt-get install gnupg
接着,添加下载源
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
然后更新安装包数据库,开始安装
sudo apt update
sudo apt install -y mongodb-org //安装最新稳定可用版本
以下是MongoDB安装好之后,一些重要目录和文件的存放位置
1). 数据文件存放目录位于/var/lib/mongodb
2). 日志文件存放目录位于/var/log/mongodb
3). 配置文件位于/etc/mongod.conf
- 验证
启动mongodb数据库服务
sudo systemctl start mongod
以下是一些相关的操作命令
sudo systemctl status mongod //查看数据库服务状态
sudo systemctl start mongod //启动mongo数据库服务
sudo systemctl restart mongod //重启mongo数据库服务
sudo systemctl stop mongod //停止mongo数据库服务
- 配置登陆验证和远程连接
此时,进入控制台或者使用数据库工具连接数据库进行相关操作是不需要登陆认证的,下面将配置登陆认证和远程链接。
首先,需要创建一个root角色用户,作为开启登陆认证后的数据库管理员
mongo //打开控制台
use admin //切换到admin数据库
db.createUser({user:"admin",pwd:"123456",roles:[{role:"root",db:"admin"}]}); //直接创建一个root角色的用户admin
exit //退出
接着,使用vim修改配置文件,开启登陆验证和远程连接
sudo vim /etc/mongod.conf
将bindIp从127.0.0.1改为0.0.0.0
去掉security其面注释,开启认证authorization,值为 enabled
修改后的配置文件如下
保存退出后,重启mongod服务
sudo systemctl restart mongod
- 验证远程连接和登陆认证
首先,进入控制台,创建一个可读写admin数据库的用户sqcheng,此时需要使用admin用户登陆认证后才能创建,不进行登陆认证,将无法创建成功
mongo
use admin //切换到admin数据库,注意,再哪个数据库创建的用户,就需要到该数据库进行登陆认证
db.auth("admin","123456") //使用admin用户认证登陆,否则下面的用户将创建失败
db.createUser({user:"sqcheng",pwd:"123456",roles:[{role:"readWrite",db:"admin"}]}); //添加一个可读写admin数据库的角色用户sqcheng
exit
然后,使用robo3t进行远程连接,成功连接,说明配置成功。