安装mongodb
https://www.mongodb.com/download-center?jmp=nav#community
下载linux版本,tar -zxvf
解压之后,路径放入/usr/local/mongodb/
。
进入mongodb目录,创建data/db
和data/mongodb.log
然后执行:
#
/usr/local/mongodb/bin/mongod
--dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/mongodb/data/mongodb.log --logappend&
将客户端mogo文件在/bin下软链接,方便随处执行:
ln -s /usr/``local``/mongodb/bin/mongo /bin/mongo`
mongo客户端访问数据库 ./mongo
添加开机自启动:
编辑:/etc/rc.d/rc.local
追加:
touch /var/lock/subsys/local
/usr/local/mongodb/bin/mongod --dbpath /usr/local/mongodb/data/db --fork --port 27017 --logpath=/usr/local/mongodb/data/mongodb.log --logappend --auth
任意位置:mongo
可查看版本!
php加载mongo扩展:
打开phpinfo 查看 nts(非线程) 还是 ts (线程),操作位数;下载对应的版本!
编译安装php7的mongodb扩展
php7的PECL库的网址:http://pecl.php.net/,搜索mongodb下载合适的版本!
解压,进入目录,然后执行命令:
phpize
./configure
make
#可能要执行make test
make install
#进入php安装目录执行
/usr/local/php/bin/pecl install mongo #(/usr/local/php/bin/pecl install mongodb)
安装成功,扩展所在目录:
php.ini文件加入mongo扩展:
phpinfo查看有无mongo模块:
查看php扩展:php -m
开启mongo
1.进入mongodb下的bin目录执行命令:./mongod --dbpath /usr/local/mongodb/data/db --fork --port 27017 --logpath=/usr/local/mongodb/data/mongodb.log --logappend
2.进入mongodb下的bin目录执行命令:./mongod -f /usr/local/mongodb/mongo.conf
mongodb目录下mongo.conf 文件内容如下:
#####start
fork = true
bind_ip = 127.0.0.1
port = 27017
quiet = true
dbpath = /usr/local/mongodb/data/ #mongo数据存储路径
logpath = /usr/local/mongodb/data/mongodb.log #mongo日志路径
logappend = true
journal = true
auth = true #true开启鉴权,false关闭鉴权
######end
关闭mongo
命令行执行命令:killall mongod
即可关闭mongo服务!
进入mongo
1.未开启鉴权进入mongo路径下的bin目录输入:mongo
就可以进入mongo数据库了,如果ip不是127.0.0.1
或者端口不是27017
则需要带上ip和端口,例如:mongo 192.168.1.243:7788
2.开启了鉴权--auth,则在bin目录输入 mongo 127.0.0.1:27017/cwc_qpl_sys -uqpladmin -pqpladmin
或者:mongo 127.0.0.1:27017/cwc_qpl_sys -u root -p
>password:
xxxxx
数据导入导出:
导出数据库:./mongodump -h 127.0.0.1:27017 -d cwc_qpl_sys -u qpladmin -p qudaqipilang -o /usr/local/src/databack/
导入数据库:./mongorestore -h 192.168.17.129:27017 -d cwc_qpl_sys --dir /usr/local/src/cwc_qpl_sys/
mongodb 3.4下远程连接认证失败的解决方法
没开启--auth情况下,输入:
mongo #进入mongo数据库
use admin #切换到用户表
db.system.users.find() #查找所有用户
#在admin数据库创建可读写cwc_qpl_sys的用户
db.createUser(
... {
... user: "qpl",
... pwd: "qpl",
... roles: [ { role: "readWrite", db: "cwc_qpl_sys" } ]
... }
... )
上面创建的用户还是没有权限访问数据库,网上查资料,说是要切换到使用的数据库创建用户:
use cwc_qpl_sys
db.createUser(
... {
... user: "qpl",
... pwd: "qpl",
... roles: [ { role: "readWrite", db: "cwc_qpl_sys" } ]
... }
... )
php的model代码里连接mongo:mongodb://qpl:[email protected]:27017/cwc_qpl_sys
,php页面依旧报错无权限:
解决:进入php安装目录找到pecl,执行: pecl upgrade mongo
更新php的mongo扩展!或者手动更新mongo版本。。。
> db.system.version.find()
{ "_id" : "featureCompatibilityVersion", "version" : "3.4" }
{ "_id" : "authSchema", "currentVersion" : 5 }
删除所有用户:db.dropUser('username')
更改mongo版本:
>db.system.version.update({"_id":"authSchema"},{$set:{"currentVersion":3}})
正确创建用户的命令:
use cwc_qpl_sys #切换数据库
#创建用户
db.createUser({
user:'root',
pwd:'root',
roles:[{
"role":"userAdminAnyDatabase",
"db":"admin"
},{
"role":"readWrite",
"db":"cwc_qpl_sys"
}]
})
查看创建的用户:db.getUsers()
鉴权:
killall mongod #结束mongod进程
./mongod -f /usr/local/mongodb/mongo.conf #开启mongo
mongo 127.0.0.1:27017/cwc_qpl_sys -uqpl -pxxx #命令行使用用户名密码进入数据库
use cwc_qpl_sys #切换数据库
#查看文档/表
show collections;
show tables;