查看ubuntu系统版本
uname -a
,显示linux内核版本 ,主要系统是不是64位
lsb_release -a
,显示ubuntu版本 ,看版本号
在确认系统是18.04 64位后,下载对应版本的安装包
在resources中可以找到server服务器版的说明文档,选择安装社区版即可
下载tgz
到网站上下载 https://www.mongodb.com/download-center/community/releases
如果cpu不支持avx指令,要下载4.0版本
- 复制下载地址,在ubuntu的根目录中,
mkdir downloads
,wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1804-6.0.0.tgz
文件 - 解压缩文件
tar -zxvf mongodb-linux-x86_64-ubuntu1804-6.0.0.tgz
- bin路径复制到系统bin目录中
sudo cp ./bin/* /usr/local/bin/
- 创建 MongoDB 实例存储其数据的目录,如:
sudo mkdir -p /var/lib/mongo
- 创建 MongoDB 实例存储其日志的目录,如:
sudo mkdir -p /var/log/mongodb
- 启动 MongoDB 进程的用户必须对这些目录具有读写权限。
sudo chown `root` /var/lib/mongo # Or substitute another user
sudo chown `root` /var/log/mongodb # Or substitute another user
`` 要替换成自己的 如 sudo chown root /var/lib/mongo
- 运行mongo
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
- 或者,再db目录中或能记住的目录中,新建conf文件启动。好处是可以用showdown关闭mongo服务
mongod --config /var/lib/mongo/mongodb.conf --shutdown
- 启动mongo
mongod -f /var/lib/mongo/mongodb.conf
或者mongod --config=/var/lib/mongo/mongodb.conf
- 开放防火墙的27017端口,便于主机也能访问
iptables -I INPUT -p tcp --dport 27017 -j ACCEPT
缺点是一旦重启设置就失效了,不能持久化
bind_ip_all = true # 任何机器可以连接
# bind_ip = 127.0.0.1,192.168.0.3 # 本机和192.168.0.3可以访问
port = 27017 # 实例运行在27017端口(默认)
dbpath = /var/lib/mongo # 数据文件夹存放地址(db要预先创建)
logpath = /var/log/mongodb/mongo.log # 日志文件地址
logappend = false # 启动时 添加还是重写日志文件
fork = true # 是否后台运行
# auth = true # 开启校验用户
遇到的问题
- 包管理系统的公钥导入不进去,
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
,在win下访问asc的地址也无法访问,可能是网络的原因,所以只能用tgz的方式安装了 - 安装好后,执行mongod,报错
Illegal instruction
。网上查说是,对于mongo5.0和6.0,cpu需要支持avx指令集。查看cat /proc/cpuinfo
在flags中没有avx指令集,再确认下grep avx /proc/cpuinfo
,输出为空。所以只能安装mongo4了 - 删除安装的mongo6
rm -rf /usr/local/bin/
,重新新建bin目录,再把mongo4的bin目录下的文件复制过来