centos7安装mongo
配置软件的安装源
#1、备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
#2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#3、之后运行yum makecache生成缓存
yum makecache
在mongo官网找到repo源,并添加vi /etc/yum.repos.d/mongodb-org-4.0.repo
把地址改为阿里的:
[mongodb-org-4.0]
name=MongoDB Repository
#baseurl = https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
baseurl=https://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/4.0/x86_64/
#gpgcheck=1
gpgcheck=0
enabled=1
#gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
奇数版本为开发版(如3.5),不建议生产环境使用
安装及启动
yum install -y mongodb-org
编辑配置文:vi /etc/mongod.conf
件建议修改日志文件路径/数据存储路径/端口/及启用密码。
systemLog:
path: /var/log/mongodb/mongod.log
storage:
dbPath: /var/lib/mongo
net:
port: 47017 #监听端口
bindIp: 0.0.0.0
security:
authorization: enabled #启用安全认证
启动服务(不能使用systemctl启动):mongod -f /etc/mongod.conf
数据库管理
创建数据库用户及分配权限:mongo localhost:47017
//创建管理员
use admin
db.createUser(
{
user: "sxy",
pwd: "sxy91.com",
roles: [ { role: "root", db: "admin" } ]
}
);
//管理员认证
db.auth("sxy","sxy91.com")
//创建其他用户
use dbtest
db.createUser(
{
user: "dbuser",
pwd: "sxy91.com",
roles: [ { role: "readWrite", db: "dbtest" } ]
}
);
exit;
重启mongod
systemctl stop mongod
mongod -f /etc/mongod.conf
使用mongo shell连接
mongo 192.168.31.93:47017/mydb -u user -p pass
正常关闭
use admin
db.shutdownServer()
统计Collection的数据量
use test
db.getCollectionNames().forEach(function(x){print(x+":"+db[x].count())})
使用pymongo的python客户端
from pymongo import MongoClient
client = MongoClient("mongodb://[username:password@]host[:port][/[database][?options]]")
# 若用户名和密码中包含保留字符(如‘:’,‘/’,‘+’,‘@’ 等)必须按照RFC 2396进行百分比编码:
from urllib.parse import quote_plus
uri = "mongodb://%s:%s@%s:%s/%s" % (quote_plus(user),quote_plus(password),host,port,database)
client = MongoClient(uri)
client.dbname.tablename.insert_one({'_id':'a1','name':'test1'})
amount = client.dbname.tablename.count()
print(amount)
更多用法参考文档: