准备
- centos7.2 64bit
- mongodb3.6
- php7.1 & MongoDB extension version 1.3.4
- laravel5.5
环境安装配置
root 用户登录服务器
关闭selinux
vim /etc/selinux/config
添加
SELINUX=disabled
:wq
setenforce 0
防火墙开放27017端口
vim /etc/sysconfig/iptables
COMMIT上一行添加
-A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT
:wq
service iptables restart
添加mongodb安装路径到yum源
cd ~
vim /etc/yum.repos.d/mongodb-org-3.6.repo
添加
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
:wq
安装
yum install -y mongodb-org
获得最大磁盘分区,如/home分区最大
df -h
创建存储地址
mkdir -p /home/tools/mongodb/mongo
检查两文件的环境
ls -dZ /home/tools/mongodb/mongo/
ls -dZ /var/lib/mongo/
复制环境
chcon -R --reference=/var/lib/mongo /home/tools/mongodb/mongo
配置mongod.conf(所有冒号后的接值都需要有个空格),设置可以创建连接的ip地址(本地局域网ip)
vim /etc/mongod.conf
修改字段
dbPath: /home/tools/mongodb/mongo
bindIp: 127.0.0.1,192.168.20.172
:wq
解决启动日志文件中的warning
echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
echo "never" > /sys/kernel/mm/transparent_hugepage/defrag
启动 停止stop 重启restart
service mongod start
验证是否成功启动
cat /var/log/mongodb/mongod.log
结尾出现下行表示成功启动
[initandlisten] waiting for connections on port 27017
开机自启
chkconfig mongod on
登录
mongo --port 27017
添加账号后退出
角色详情见mongodb创建角色
use admin
db.createUser(
{
user: "root",
pwd: "root",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
db.createUser(
{
user: "mintomax",
pwd: "max2min",
roles: [ { role: "dbOwner", db: "waf" } ]
}
)
quit()
配置文件启用身份验证
vim /etc/mongod.conf
修改
security:
authorization: enabled
:wq
service mongod restart
连接测试
mongo --port 27017 -u "root" -p "root" --authenticationDatabase "admin"
修改用户属性
use admin
db.updateUser(
"mintomax",
{
pwd: "max2min",
roles:
[{
role: "dbOwner",
db: 'waf'
}]
}
)
查看用户,help
use admin
show users;
删除用户
use admin
db.dropUser('mintomax')
mintomax用户插入记录
use waf
db.runCommand(
{
insert: "waf_log",
documents: [ { _id: 1, user: "abc123", status: "A" } ]
}
)
查询
db.waf_log.find( {} )
删除所有documents
db.waf_log.deleteMany({})
删除collection
db.waf_log.drop()
重命名collection
db.waf_log.renameCollection( "waf_log_new" )
确定waf_log集合的字段(与mysql对比)
建立索引并为索引取名
use waf
db.waf_log.createIndex({
time:1,
xffip: