7

Linux 安装并使用 MongoDB

Linux 服务器部署 MongoDB,从安装到使用的过程中,碰到很多问题,记录一下,和大家共勉。

安装

MongoDB 提供了 Linux 各发行版本 64 位的安装包,官网下载安装包地址:https://www.mongodb.com/downl...

1.下载安装包

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.6.tgz 

2.解压安装包

tar -zxvf mongodb-linux-x86_64-4.0.6.tgz

3.将安装包重命名为 mongodb 并拷贝到 /usr/local/ 目录

mv  mongodb-linux-x86_64-4.0.6 /usr/local/mongodb 

修改环境变量

因为 MongoDB 的可执行文件位于 bin 目录下,所以可以将其添加到 PATH 路径中,此后,在所有的路径下可以直接使用 MongoDB 的命令。以下为添加PATH的方式:

(1)临时环境变量(重启后消失):export PATH=<mongodb-install-directory>/bin:$PATH  
    注:<mongodb-install-directory>为你 MongoDB 的安装路径。如本文的 /usr/local/mongodb 。

(2)永久环境变量:
    vi /~/.bashrc
    加入path:
    export PATH=$PATH:/usr/local/mongodb/bin
 (3) 如果没有权限修改.bashrc文件,则为/usr/local/mongodb/bin创建软链接
    ln -s /usr/local/mongodb/bin/* /usr/local/bin

创建数据库目录

MongoDB的数据存储在data目录的db目录下,但是这个目录在安装过程不会自动创建,所以你需要手动创建data目录,并在data目录中创建db目录。

mkdir -p /data/db

创建日志目录

mkdir -p /data/logs

新建mongod.conf配置文件

linux 安装 MongoDB 时在 /etc/ 目录下并没有找到配置文件,所以按照配置文件启动时,需要新建配置文件。

vi /etc/mongod.conf

配置文件如下:

port=27017
fork=true # 以创建子进程的方式运行
dbpath=/data/db #日志输出方式数据库路径
logappend=true #日志输出方式,日志append而不是overwrite
logpath=/data/logs/mongo.log #日志路径
auth=true #开启安全验证(可以不开启)

在默认情况下,mongod是没有安全认证的,但是如果你设置了auth=true,就开启了安全验证,开启安全验证之后是可以进入mongo的shell的,但是使用命令时会报错:

Warning: unable to run listCollections, attempting to approximate collection names by parsing connectionStatus

关于安全访问权限设置,可以参考https://www.codetd.com/articl...

运行 MongoDB 服务

按照配置文件启动 mongodb 服务端

mongod --config /etc/mongod.conf
netstat -ntulp |grep 27017 //查看 MongoDB 服务是否启动成功

启动成功:

clipboard.png

启动 MongoDB shell

mongo 是用来的,是mongodb的命令行客户端

 mongo

其他

错误1:

 couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Connection refused :

原因:MongoDB 服务没有启动成功

错误2:

Error parsing YAML config file: yaml-cpp: error at line 7, column 9: illegal map value

原因: 配置文件mongod.conf格式有问题

参考文献

Linux 环境变量PATH:https://blog.csdn.net/Bruce_Y...
安全访问权限设置:https://www.codetd.com/articl...


Aima
1.1k 声望526 粉丝

what you need is not strength, but passion.