Mongodb安装教程
- 下载解压安装包
- 创建数据存储目录和日志文件目录
- 修改环境变量
- 编辑.conf配置文件
- 启动
1、下载解压安装包
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.2.tgz
tar -zxvf mongodb-linux-x86_64-rhel70-4.0.2.tgz
mv mongodb-linux-x86_64-rhel70-4.0.2/ /usr/local/mongodb
2、创建数据存储目录和日志文件目录
mkdir -p /usr/local/mongodb/data/db
mkdir -p /usr/local/mongodb/logs
3、修改环境变量
vim /etc/profile
添加路径如下:
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
加载配置:
source /etc/profile
添加路径如下
4、编辑.conf配置文件
cd /usr/local/mongodb/bin
vi mongodb.conf
参数设置如下
dbpath = /usr/local/mongodb/data/db
logpath = /usr/local/mongodb/logs/mongodb.log
fork=true
bind_ip= 0.0.0.0
security:
authorization: enabled
首先,将bind_ip改为0.0.0.0 (让其他电脑可以访问,用于远程连接,如果bind_ip是127.0.0.1的话,就只能本地访问)
然后找到 #security:改上图所示,开启安全认证。
5、启动
cd /usr/local/mongodb/bin
mongod -f mongodb.conf
启动命令:
/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data/db --fork --port 27017 --logpath=/usr/local/mongodb/logs/mongodb.log --logappend --auth --bind_ip_all
异常关闭,无法重启
2018-07-20T22:29:17.982+0800 I CONTROL [initandlisten] MongoDB starting : pid=3499 port=27017 dbpath=/data/db 64-bit host=xumovm
......
2018-07-20T21:12:05.974+0800 E STORAGE [initandlisten] Failed to set up listener: SocketException: Address already in use
解决办法:
找到mongo之前运行的PID号,关掉它,重新输入启动命令
sudo netstat -anp|more
激活Internet连接 (服务器和已建立连接的)
Proto Recv-Q Send-Q Local Address Foreign Address State
PID/Program name
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN
2515/./mongod
sudo kill 2515
mongodb常用命令
killall mongod 杀进程
ps -ef|grep mongo 查进程
netstat -nat|grep 27017 查监听端口
创建管理员账户并赋予权限
> use admin #进入admin数据库
switched to db admin
> db.createUser(
{user:"admin",
pwd:"123456",
roles:[{role:"root", db:"admin"}]
}
)
user:”用户名“,
pwd:"密码”,
roles:[{role:"角色名“, db:"角色所属数据库”}, {role:"角色名2“, db:"角色所属数据库2”},.....]
各种角色的具体功能描述见:https://docs.mongodb.com/manual/core/security-built-in-roles/
用户添加成功会出现:成功的字样和添加的用户信息
创建普通账户并赋权
# 先登录管理员账户获取创建权限
> use admin #进入admin数据库
> switched to db admin
# 登录管理员账户
> db.auth('admin', '123456')
> 1
# 再进入其他普通数据库
> use test # 进入test数据库
# 创建普通用户并赋权
> db.createUser(
{user:"admin",
pwd:"123456",
roles:[{role:"root", db:"admin"}]
}
)