Linux使用3—CentOS7安装MongoDB数据库

数据库版本

MongoDB shell version v4.0.13

安装

创建文件:/etc/yum.repos.d/mongodb-org-4.0.repo

1
2
3
4
5
6
7
8
9
10
11
# 创建yum源 
/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/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

安装配置

1
yum install -y mongodb-org
  • 默认数据位置
    • /var/lib/mongo
  • 默认日志位置
    • /var/log/mongodb
  • 数据库配置
    • /etc/mongod.conf

修改配置

开放端口

开启远程连接:
将net:
bindIp: 127.0.0.1 的127.0.0.1改为 0.0.0.0

进入命令行

1
mongo

设置账号密码

1
2
3
4
5
6
7
8
# 切换数据库
use admin
# 创建用户
db.createUser({ user: "root", pwd: "root", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
# 修改mongod.conf文件, 增加配置
security:
authorization: enabled
# 重启服务

服务命令行

1
2
3
4
5
6
7
8
9
10
11
12
# 关闭服务
service mongod stop
# 关闭服务1
systemctl stop mongod
# 重启服务
service mongod restart
# 重启服务1
systemctl restart mongod
# 启动服务
service mongod start
# 启动服务1
systemctl start mongod

开机自启

1
2
3
chkconfig mongod on
#或者
systemctl ennable mongod

错误

错误一

Error: couldn’t connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:344:17

解决步骤:

使用mongod命令时可以看到如下错误:

exception in initAndListen: NonExistentPath: Data directory /data/db not found., terminating

因此,手动创建该文件夹。

发现可以正常启动了。

错误二

Error: couldn’t add user: command createUser requires authentication:_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.createUser@src/mongo/shell/db.js:1491:15

解决方案:先使用超级管理员登录

1
2
3
use admin
# 验证
db.auth('root','root')

然后,再切换数据库并创建其他用户

1
db.createUser({ user: "root", pwd: "root", roles: [{ role: "dbOwner", db: "weyoung" }] })

MongoDB数据库常用命令

创建数据库

1
2
3
use DATABASE_NAME
# 例如:
use weyoung

创建集合

1
2
3
db.createCollection(name, options)
# name: 要创建的集合名称
# options: 可选参数, 指定有关内存大小及索引的选项

删除集合

1
2
3
4
# 查看数据库中所有集合
show collections

db.collection.drop()

删除文档

1
2
3
4
5
6
7
8
9
10
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
# query :(可选)删除的文档的条件。
# justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
# writeConcern :(可选)抛出异常的级别。