Linux CentOS 6.5 yum安装MongoDB的操作

安装mongodb-3.6.4版本

执行命令

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.6.4.tgz

如果出现错误,则在root下更新wget,执行

yum upgrade wget

再去执行以上wget命令即可。

下载完成后,进行解压

tar -zxvf mongodb-linux-x86_64-rhel62-3.6.4.tgz

如果嫌解压后文件名称过长,可以进行重命名

mv mongodb-linux-x86_64-rhel62-3.6.4 mongodb

进入到mongodb目录下

cd mongodb

创建db和日志目录

mkdir data
mkdir -p data/db
mkdir -p data/logs

在logs目录下创建mongodb.log文件

touch mongodb.log

在data目录下创建mongodb.conf文件

cd mongodb/data
vi mongodb.conf
port=8087

dbpath=/opt/mongodb/mongodb/data/db

logpath=/opt/mongodb/mongodb/data/logs/mongodb.log

fork=true

logappend=true

启动

在mongodb目录下执行

./bin/mongod --config /opt/mongodb/mongodb/data/mongodb.conf

可以看到以下内容:

未分类

进入到mongodb进行操作

./bin/mongo

无法连接 127.0.01:27017,经过分析,是防火墙端口没有开放。

未分类

可以看到有很多警告信息,没有关系,因为接下来要创建用户,mongodb默认情况下没有用户,需要创建,授权。

> use admin
switched to db admin
> db.system.users.find();

没有任何输出,这时则创建用户,我创建的是一个超级用户

db.createUser(
... {
... user:"root",
... pwd:"554466",
... roles:[{role:"root",db:"admin"}]
... }
... )
Successfully added user: {
    "user" : "root",
    "roles" : [
        {
            "role" : "root",
            "db" : "admin"
        }
    ]

}

然后关闭mongodb,执行命令db.shutdownServer();

exit;退出mongodb客户端,重新编辑配置文件vi data/mongodb.conf

加入一行auth=true,保存退出,再次启动mongodb,此时就不会出现警告信息,进入客户端,进行用户验证。

未分类

CentOS 6.5 certbot-auto更新掉坑记

中午一客户的ssl证书到期了,

原本以为照着之前设定好的计划任务脚本执行一次,

就可以顺利地把letsencrypt的证书续期,

谁曾想。。。

本想温柔地进入,却一搞就是差不多4个小时!!

一下掉坑里了!

先贴执行续期命令后的报错截图:

未分类

CentOS 6.5 certbot-auto renew找不到argparse==1.4.0

首先我们来仔细看这个错误输出,

不但指出了错误原因,还给出了解决方法,以及参考文档,

看来certbot官方的同学没少做工作。

错误原因

No matching distribution found for argparse==1.4.0

建议的解决办法(小坑)

You are using pip version 8.0.3, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

更多的参考资料

Consult https://certbot.eff.org/docs/install.html#problems-with-python-virtual-environment
for possible solutions.

看看这个参考页面打开后的截图:

未分类

内存不够,增加swap交换分区

作者特意用红色文字标出与这种情况相对应的错误提示:

internal compiler error: Killed (program cc1)

看来我可以跳过了(不过因为服务器没有配置swap分区,看内存剩余也不多了,就顺便配置了一个)。

百度、谷歌了一圈,汇总三种解决办法如下(看来我遇到的是第四种)

  1. pip install –upgrade pip (跟错误提示中的建议方法一致)

  2. 创建swap分区并启用(跟官方参考文档中的方法一致)

  3. 修改~/.pip/pip.conf,一种直接改名,另一种修改里面的源地址为另一个,说阿里云的源非最新的

上述三种都尝试了,先把python从2.6.6升级到Python-2.7.11,

然后从python官网下载安装了如下几个所需的扩展:

  • setuptools-34.3.2

  • argparse-1.4.0

  • pip-9.0.1

  • virtualenv-15.1.0

然并卵,执行certbot-auto renew命令报错依然。。

而且明明pip -V都说已经是最新的9.0.1版本了:

pip 9.0.1 from /usr/bin/lib/python2.7/site-packages/pip-9.0.1-py2.7.egg (python 2.7)

会不会是certbot-auto脚本里用的pip版本不是9.01?

于是抱着死马当活马医的心态,

打开certbot-auto脚本,按斜杠搜索pip-8,一搜不打紧,还真的搜到一句:

如图:

未分类

certbot-auto脚本中写死了pip版本

虽然不是太懂python,但是看的出来它是要下载这个压缩包下来然后安装用。

于是果断到python官网找了最新的pip-9.0.1版的下载地址,

注释掉原来两句,替换为上图框出来的部分,

保存,重新执行renew更新ssl证书命令,经过漫长的一两分钟的等待。。。

看到一个“Congratulations”,赶紧重启nginx:

/usr/sbin/nginx -s reload

down机近4小时的https接口服务终于恢复了!!

总结爬坑技巧

  • 仔细看错误提示
  • 不要过于相信搜索引擎(百度可以直接忽略)
  • 大胆尝试

末了,

觉得有必要进一步了解下python,

尤其是pip的结合,魅力非凡!