linux 下安装mongodb
1、准备
mongodb安装包
上传到linux服务器上并解压
改个简单的一点的名字
2、配置环境
编辑profile文件
vi /etc/profile
并在最后添加 export PATH=$PATH:/home/soft/mongodb/bin
注:路径按照实际文件位置变动
exit
3、创建配置文件
vi mongodb.conf
然后添加下列配置
port=27017 //启动的端口
dbpath=/data/db //数据存放位置
logappend=true //日志自动切割 按每天存放
fork=true //后台启动
logpath=/logs/mongodb.log //日志存放路径
nohttpinterface=true //关闭http接口
bind_ip=0.0.0.0 //0.0.0.0表示可以通过远程连接该数据库,127.0.0.1表示只能当前服务器连接
auth=true // 权限验证 (第一次启动建议关闭,因为需要创建root账号,开启状态无法创建)
maxConns=1000 //最大连接数
4、启动
./mongod -f mongodb.conf
5、创建root权限账号
use admin
db.createUser({ user: 'admin', pwd: '123456',roles: [ { role: "userAdminAnyDatabase", db: "admin" }] })
输出成功示例:
{
"_id" : "admin.admin",
"user" : "admin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
6、创建普通数据库用户
当创建好root权限的账号后,先退出mongodb,把配置文件里面的auth改为true,重启mongodb
然后进入mongo并验证admin账号
然后创建需要的数据库(test数据库)
注:mongo数据库是数据库跟着用户走,所以创建数据库需要创建新的用户
use test
db.createUser({ user: 'test', pwd: '123456',roles: [ { role: "readWrite", db: "test" }] })
创建完成了,不过当你执行show dbs的时候会发现没有test数据库,因为mongo数据库要先插入一条数据才会显示数据库,
所以我们根据刚才创建的用户,插入一条测试数据
db.auth('test','123456')
db.test.insert({'name':'test'})
执行完毕后再执行show dbs 就可以看到了
7、测试
使用robo连接admin数据库(可以显示所有数据库)
连接成功!!
8、可能遇到的问题
1、 robo连接数据库时报错 :Network is unreachable
1)、原因:服务器防火墙没有把27017端口开放导致无法连接
解决:开放27017端口
或关闭防火墙:
systemctl stop firewalld.service && systemctl disable firewalld.service
2)、原因:配置文件里bind_ip 为127.0.0.1
解决:修改配置文件并重启数据库