Linux学习、Mongodb部署 踩到的坑学习
一、安装Centos 7虚拟机系统
1、系统安装
下载阿里云的镜像,下载后安装,默认全程图形界面;虚拟机使用Win10自带的Hyper;碰到的坑记录下
1、在Hyper加载镜像启动的时候,提示“虚拟机服务未开启”类似的错误,需要进BIOS里设置Momory Profile设置为启用,包括检查任务管理器里的性能、CPU选项卡右下角的虚拟化是否已启用;重启机器继续安装;
2、全程Linux图形界面安装完成后,由于勾选的服务比较多,安装的时间太长,其实最小化安装应该就是最好的,需要什么再安装什么就成。
3、安装后,在图形界面,按CTRL+ALT+Fn(1-6),可以进入字符界面,使用root登录;如果在字符界面要回图形界面,输入startx回车。
2、系统安装后无法上网的问题:
系统安装后,需要指定网卡,然后设置PC实际网卡的共享选项,需要设置为共享,否则虚拟机虚拟出来的网卡无法上网。
二、安装Mongodb
1、通过wget命令,下载tgz的压缩包;网上也有教程说用curl,反正有问题,可能是参数使用不当,后来改用wget下载包。下载地址: https://www.mongodb.com/download-center/community 在这个网址上,Centos需要选择的版本为rhel类型的,即RedHat版的linux,文件扩展名建议选tgz格式。Centos选择带RHEL的安装包,这里选择RHEl 7 Linux 64-bit x64版本的安装包即可
# 1.在usr/local/下创建mongodb文件夹 cd /usr/local/ mkdir mongodb # 2.解压文件 tar -xzvf mongodb-linux-x86_64-rhel70-4.0.1.tgz # 3.将解压后的文件下所有内容移动到mongodb文件夹下 # 注意这里不是将mongodb-linux-x86_64-rhel70-4.0.1文件夹移动到创建好的mongodb下,而是文件下的内容 mv mongodb-linux-x86_64-rhel70-4.0.1/* /usr/local/mongodb/ # 4.添加mongodb的环境变量 vi /etc/profile # 5.在文件末尾插入如下内容 export MONGODB_HOME=/usr/local/mongodb export PATH=$PATH:$MONGODB_HOME/bin # 6.修改保存后要重启系统配置,执行命令如下 source /etc/profile
经过上述步骤,基本的配置已经完成了,接下来创建mongodb数据文件和日志文件的存放位置,并且对启动项进行配置,启动项配置其中包含数据库文件路径和日志文件路径,填写上述将要创建的文件夹或文件路径。具体步骤如下:
# 1.创建数据库文件存放路径 cd /usr/local/mongodb mkdir -p data/db chmod -r 777 data/db # 2.创建日志文件 cd /usr/local/mongodb mkdir logs cd logs touch mongodb.log # 3.创建启动文件 cd /usr/local/mongodb/bin touch mongodb.conf # 4.编辑启动文件 vi mongodb.conf # 5.在文件中插入如下内容 dbpath=/usr/local/mongodb/data/db #数据文件存放目录 logpath=/usr/local/mongodb/logs/mongodb.log #日志存放目录 port=27017 #端口 fork=true #以守护程序的方式启用,即在后台运行 logappend=true maxConns=5000 storageEngine = mmapv1上述步骤基本上没有什么问题,后续出现的问题还在于上面的配置文件里,
storageEngine = mmapv1 这句无法识别,后来把它删除掉。
部署完成后,发现外面无法访问,经查发现在监听回环地址的27017端口,加上:bind_ip_all=true 表示监听所有端口;
处理完后,发现外面依然还是无法访问,经查是防火墙需要放行,加入端口后还需要重新加载防火墙配置文件;
用到的一些linux命令:
ls 列举当前目录下的文件清单
ls /usr/local/ 例举该目录下的文件清单
tail /usr/local/mongodb/logs/mongodb.log 查看文件内容
cd .. 返回上一级目录
cd /usr/local/mongodb/bin/ 进入指定目录
cp 复制命令
tar -xzvf ....tgz 解压指定文件。
mv mongodb /usr/local/mongodb 将指定目录移动到目标目录
touch /usr/local/mongodb/logs/mongodb.log 新建文件?
vi /usr/local/mongodb/bin/mongodb.conf 编辑指定的文本文件,进入后按Insert进入插入模式和替换模式间切换,编辑完毕后按ESC返回,并输入:wq 保存并退出。
mkdir dirname 在当前目录下创建目录
rm /usr/local/mongodb/data/* 删除目录下的全部文件,如果要删除具体文件,把*号替换为具体文件名。该命令无法删除目录,对每个文件删除前都会要求确认,若要删除目录,则加上 -r 选项。例如:rm -r /usr/local/mongodb/data/*
[root]# rm -ivrf dirname 删除指定目录下的所有东西
netstat -nltp|grep 27000 查看端口监听情况
mongod -f /usr/local/mongodb/bin/mongodb.conf 按指定的配置文件启动服务
pkill mongod 结束服务;//开放27017端口
[root@localhost /]# firewall-cmd --zone=public --add-port=27017/tcp --permanent
success//重新加载防火墙
[root@localhost /]# firewall-cmd --reload
//查看端口是否开放
[root@localhost /]# firewall-cmd --query-port=27017/tcp
yes操作完成后,需要重启mongodb服务,完成后外网就可以访问啦。
[root@localhost /]# netstat -anp | grep mongod 查询进程的端口信息。
https://blog.csdn.net/u010821666/article/details/78114391/ 这里有另一个方案,没试过。另一编文章:https://blog.csdn.net/lin_xiaofeng/article/details/8762922