MongoDB的安装与配置
1、配置yum源
- vim /etc/yum.repos.d/mongodb-org-4.0.repo
填入源信息(最新源信息参考官方文档)
js
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
ps:源信息来源:官方文档:Linux安装MongoDB
2、安装MongoDB
- yum install -y mongodb-org
3、MongoDB服务操作
启动:
- systemctl start mongod
开机自启
- systemctl enable mongod
停止:
- systemctl stop mongod
查看状态:
- systemctl status mongod
重启:
- systemctl restart mongod
查看端口是否开启(如果未开启,则尝试关闭防火墙)
- netstat -natp | grep 27017 // 查看端口占用
- systemctl stop firewalld // 关闭防火墙
- systemctl disable firewalld // 开机禁用
4、开启公网访问
- vim /etc/mongod.conf
js
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0 # 0.0.0.0:开启公网访问 | 127.0.0.1:只能本地访问
尝试使用Navicat连接
5、配置访问权限
- 经上面步骤已可以正常连接与操作数据库,但是未设置任何权限。
巨坑
先设置数据库用户&密码,再配置权限访问。(mongo无缘无故炸了)
设置数据库用户&密码与权限
- mongo // 进入mongo命令终端
- show dbs // 会有三个默认数据库
- use admin // 操作admin数据库
- db.createUser({ user:"root", pwd:"123456", roles:["root"] }) // root别动,改密码就好。而且其他库都不能用root,创建root用户会抛错。
ps:root拥有最高权限,可以读写所有数据库。
连接成功
创建用户成功后,配置权限访问
- vim /etc/mongod.conf
js
security:
authorization: "enabled" # disable or enabled
ps: authorization 这个字段没有, 需要自己加上。
重启Mongo: systemctl restart mongod
6.其他问题
删除用户
连接Mongo: mongo 127.0.0.1:27017/admin -u root -p 123456
ps: 如果密码带有!,可以使用引号引起来
删除用户: db.dropUser('usertest')
小坑
- 删除root用户后无法创建新的用户,可以先关闭权限认证,再按上面步骤创建用户
- 创建数据库不会立刻展示,需要往里面插入数据:
db.xxxdb.insert({"name":"菜鸟教程"})
用户权限参考
7.连接MongoDB
终端连接
js
mongo yourIp:27017/database -u username -p password
mongoose方式连接
js
mongoose.connect('mongodb://username:password@host:port/database', {useNewUrlParser: true})
通过客户端连接: Navicat
卸载MongoDB
- yum erase $(rpm -qa | grep mongodb-org) // 卸载MongoDB
- rm -r /var/log/mongodb // 删除日志文件
- rm -r /var/lib/mongo // 删除数据文件