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 服务是否启动成功
启动成功:
启动 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...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。