暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

用python安装mongodb



之前写过mongodb的shell一键安装脚本,今日分享一下python的脚本。此脚本是离线环境下去安装5.0.8版本。

#!/usr/bin/python

# -*- coding: UTF-8 -*-

import os

import time

def install():

    """

    安装Mongodb

    过程:

        1、解压

        tar -zxvf mongodb-linux-x86_64-rhel70-5.0.8.tgz

        2、修改文件夹名字

        3、添加环境变量

        4、创建所有目录

        mkdir -p data/mongodb/{db,logs,conf}

        5、创建配置文件

        6、启动

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

    :return:

    """

    os.system("tar -zxvf ./mongodb-linux-x86_64-rhel70-5.0.8.tgz -C usr/local/")

    os.system("mv usr/local/mongodb-linux-x86_64-rhel70-5.0.8/ usr/local/mongo")

    with open("/etc/profile.d/mongo.sh", "w+") as path_file:

        lines = [

            "export PATH=$PATH:/usr/local/mongo/bin\n"

        ]

        path_file.writelines(lines)

    os.system("mkdir -p data/mongodb/{db,logs,conf}")

    with open("/data/mongodb/conf/mongodb.conf", "w+") as config_file:

        context = '''

# 数据存放目录

dbpath=/data/mongodb/db

# 存放日志路径, 要先把目录新建好

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

# 布尔值, 是否追加方式记录日志

logappend=true

# mongodb绑定的ip地址,127.0.0.1只允许本机访问,如果想让其他主机能访问请修改为0.0.0.0

bind_ip=0.0.0.0

# 端口号,默认为27017

port=27017

# 设置oplog的大小(MB)

oplogSize=10000

# 以后台方式运行进程

fork=true

# 启用日志文件,默认启用,生产环境强烈推荐打开

journal=true

        '''

        config_file.write(context)

    os.environ['PATH'] = '%s:%s' % (os.environ['PATH'], '/usr/local/mongo/bin')

    os.system("mongod --config data/mongodb/conf/mongodb.conf")

def detect():

    """

    检测是否安装成功

    :return:

    """

    time.sleep(5)

    return True if os.popen("ps -ef|grep mongo").read().find(

        "mongod") > 0 else False

def prompt_fail():

    """

    安装失败后提示

    :return:

    """

    print """

    \033[5;31;40m 很抱歉安装失败 \033[0m

    """

def prompt_success():

    """

    安装成功后提示

    :return:

    """

    print """

    \033[5;32;40m 恭喜mongo-5.0.8-linux安装成功! \033[0m

    使用前注意:

        执行: source /etc/profile 或【重新登录当前服务器】来重新加载环境变量

    安装路径:/usr/local/mongo

    环境变量配置:/etc/profile.d/mongo.sh

    启动命令: mongod --config /data/mongodb/conf/mongodb.conf

    停止命令:mongod --config /data/mongodb/conf/mongodb.conf --shutdown

    端口号:27017

    数据存放目录:/data/mongodb/db

    存放日志路径: /data/mongodb/logs/mongodb.log

    """

if __name__ == '__main__':

    install()

    if detect():

        prompt_success()

    else:

        prompt_fail()


说明:我们只需要把脚本和安装包上传至同目录下,再赋予执行X权限直接执行脚本即可。

为了保障数据库安全,我们在安装成功后须开启认证,必选先添加用户,配置文件中添加auth=true。

具体操作如下

添加用户、安全认证

首先必须使用admin数据库,进行新用户授权。

MongoDB副本集默认会创建local、admin数据库,local数据库主要存储副本集的元数据,admin数据库则主要存储MongoDB的用户、角色等信息。

输入以下命令:

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

授权成功后,关闭mongo服务:

mongod --config /data/mongodb/conf/mongodb.conf --shutdown


查看mongo服务进程,可看到服务已经成功停掉了。


然后需要到配置文件中修改配置,启用安全认证。

#开启认证,必选先添加用户

auth=true

最后开启mongo服务,进入数据库测试:

./mongod --config /usr/local/mongodb/etc/mongodb.conf

show dbs此时看不到任何数据库,说明我们的安全认证用户配置生效了。

首先使用use admin通过db.auth(‘root’,‘密码’) 输出1就是验证成功。

use admin

db.auth('root','123456')


在日常的运维过程中需要注意的几点是部署须采用非管理员权限,修改默认端口,且日常巡检创建只读的巡检账号即可,明天会分享这几点操作。


文中的概念来源于网络,如有侵权,请联系我删除。

欢迎关注公众号:小周的数据库进阶之路,一起交流数据库、中间件和云计算等技术。欢迎觉得读完本文有收获,可以转发给其他朋友,大家一起学习进步!感兴趣的朋友可以加我微信,拉您进群与业界的大佬们一起交流学习。


文章转载自小周的数据库进阶之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论