目录

  • 1. 下载安装包
  • 2. 将安装包上传至服务器
  • 3. 解压
  • 4. 创建配置文件
  • 5. 修改环境变量
  • 6. 启动mongo
  • 7. 连接数据库
  • 8. 绑定ip说明
  • 9. 设置用户名密码
  • 10. 关闭mongo
  • 11. 使用用户名密码登录
  • 12. 配置开机自启动


Docker安装MongoDB

1. 下载安装包

  • 这里使用免费的社区版本 ( 下载地址 )
  • 版本号4.4.11,CentOS7,tgz压缩包

linux登录mongodb数据库 linux连接mongodb用户名密码_用户名

2. 将安装包上传至服务器

  • 这里使用xftp将安装包伤上传至虚拟机上

linux登录mongodb数据库 linux连接mongodb用户名密码_配置文件_02

3. 解压

  1. 解压
tar -zxvf mongodb-linux-x86_64-rhel70-4.4.11.tgz

linux登录mongodb数据库 linux连接mongodb用户名密码_mongodb_03

  1. 重命名
mv mongodb-linux-x86_64-rhel70-4.4.11 mongodb

linux登录mongodb数据库 linux连接mongodb用户名密码_linux登录mongodb数据库_04

  1. 创建数据存放文件夹、日志存放文件夹、配置文件夹
mkdir -p mongodb/{data/db,log,conf}

linux登录mongodb数据库 linux连接mongodb用户名密码_用户名_05


linux登录mongodb数据库 linux连接mongodb用户名密码_linux登录mongodb数据库_06

4. 创建配置文件

vim mongodb/conf/mongodb.conf
  • 添加下面的配置
storage:
   dbPath: "/usr/local/soft/mongodb/data/db" #数据存放位置
systemLog:
   destination: file
   path: "/usr/local/soft/mongodb/log/mongodb.log" #日志存放位置
   bindIp: 0.0.0.0 #对远程连接ip不限制
   port: 27017 #端口号
processManagement:
   fork: true #后台启动

linux登录mongodb数据库 linux连接mongodb用户名密码_配置文件_07

5. 修改环境变量

  • 将mongodb/bin目录下的可执行添加到环境变量中,方便使用mongo/bin下面的命令
  • 修改profile文件
vi /etc/profile
  • 在最下面添加mongo的bin目录路径
export MONGODB_HOME=/usr/local/soft/mongodb/
export PATH=$PATH:$MONGODB_HOME/bin
  • 使文件生效
source /etc/profile

6. 启动mongo

  • 指定配置文件启动
mongod -f mongodb/conf/mongodb.conf
  • 出现下面提示,表示启动成功,进程号是6984

linux登录mongodb数据库 linux连接mongodb用户名密码_用户名_08


linux登录mongodb数据库 linux连接mongodb用户名密码_mongodb_09

  • 查看进程
ps -aux|grep mongod

linux登录mongodb数据库 linux连接mongodb用户名密码_配置文件_10

7. 连接数据库

  • 因为没有设置用户名密码,也没有对ip做限制,本机(ip:192.168.42.111)可以直接使用 mongo 命令登录
mongo
  • 查看数据库
show databases

linux登录mongodb数据库 linux连接mongodb用户名密码_linux登录mongodb数据库_11

  • 客户端(ip:192.168.42.115)连接
mongo mongodb://192.168.42.111:27017

linux登录mongodb数据库 linux连接mongodb用户名密码_mongodb_12

8. 绑定ip说明

  • 本机连接
bindIp: 127.0.0.1  #只允许本机登录,其他客户都不能连接

linux登录mongodb数据库 linux连接mongodb用户名密码_linux登录mongodb数据库_13


linux登录mongodb数据库 linux连接mongodb用户名密码_配置文件_14

  • 使用固定ip连接,这个ip可以使用一个内网的地址,保证一定程度的安全性,多个ip之间可以使用逗号分隔,比如127.0.0.1,192,168.42.111
bindIp: 192.168.42.111  #只允许使用IP 192.168.42.111进行连接

linux登录mongodb数据库 linux连接mongodb用户名密码_配置文件_15


linux登录mongodb数据库 linux连接mongodb用户名密码_linux_16

  • 其他客户端连接
mongo mongodb://192.168.42.111:27017

linux登录mongodb数据库 linux连接mongodb用户名密码_linux登录mongodb数据库_17

linux登录mongodb数据库 linux连接mongodb用户名密码_linux登录mongodb数据库_18

9. 设置用户名密码

  • 先登录
mongo 192.168.42.111:27017
  • 查看数据库
show databases
  • 切换到admin(设置密码需要切换到admin库)
use admin
  • 添加用户
db.createUser( { user: "fisher", pwd: "fisher3652",roles:[{role:"root",db:"admin"}]})
  • 查看所有用户信息
show users
  • 退出
exit

linux登录mongodb数据库 linux连接mongodb用户名密码_mongodb_19

10. 关闭mongo

  • 一定不能使用kill -9 <pid> 进行关闭 ,否则启动时会报如下错误
child process failed, exited with error number 48

因为MongoDB使用mmap方式进行数据文件管理,也就是说写操作基本是在内存中进行,写操作会被每隔60秒(syncdelay设定)的flush到磁盘里。如果在这60秒内flush处于停止事情我们进行kill -9那么从上次flush之后的写入数据将会全部丢失。
如果在flush操作进行时执行kill -9则会造成文件混乱,可能导致数据全丢了,启动时加了repair也无法恢复。

  1. 在admin库下使用shutdownServer命令
use admin
db.shutdownServer()
  1. 使用shutdown命令
mongod --shutdown
  • 如果是指定了配置文件启动的,后面要带配置文件

linux登录mongodb数据库 linux连接mongodb用户名密码_mongodb_20

  1. kill
kill <mongod process ID>

linux登录mongodb数据库 linux连接mongodb用户名密码_配置文件_21

11. 使用用户名密码登录

  • 使用授权模式启动mongo
mongod --auth -f mongodb/conf/mongodb.conf

linux登录mongodb数据库 linux连接mongodb用户名密码_linux_22

  • 这时候不带用户名是登录不了的

linux登录mongodb数据库 linux连接mongodb用户名密码_配置文件_23

  • 指定host和用户名登录,端口默认27017
mongo -host 192.168.42.115 -u fisher

linux登录mongodb数据库 linux连接mongodb用户名密码_linux_24

  • 输入密码,登录成功

linux登录mongodb数据库 linux连接mongodb用户名密码_配置文件_25

  • 这里使用授权模式登录,可以在配置文件中添加如下配置并重新启动,下次启动时可以不带 --auth
security:
    authorization: enabled

linux登录mongodb数据库 linux连接mongodb用户名密码_linux登录mongodb数据库_26

12. 配置开机自启动

  • 创建mongodb.service,并添加下面配置,注意切换mongo目录为实际存放的文件路径
vi /usr/lib/systemd/system/mongodb.service
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
RuntimeDirectory=mongodb
PIDFile=/usr/local/soft/mongodb/data/db/mongod.lock
ExecStart=/usr/local/soft/mongodb/bin/mongod -f /usr/local/soft/mongodb/conf/mongodb.conf
ExecStop=/usr/local/soft/mongodb/bin/mongod --shutdown -f /usr/local/soft/mongodb/conf/mongodb.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target

linux登录mongodb数据库 linux连接mongodb用户名密码_用户名_27

  • 使配置生效,重启服务器后,会发现mongo自动启动
systemctl daemon-reload
systemctl start mongodb
systemctl enable mongodb

linux登录mongodb数据库 linux连接mongodb用户名密码_linux_28

  • 关闭和启动服务命令
service mongodb stop
service mongodb start