linux下mongodb安装以及php扩展等操作和Robomo
安装mongodb
https://www.mongodb.com/download-center?jmp=nav#community
下载linux版本,tar -zxvf
解压之后,路径放入/usr/local/mongodb/
。
![](https://img.haomeiwen.com/i2255249/f5d949a49d693dc8.png)
进入mongodb目录,创建data/db
和data/mongodb.log
然后执行:
#
/usr/local/mongodb/bin/mongod
--dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/mongodb/data/mongodb.log --logappend&
![](https://img.haomeiwen.com/i2255249/1023b8ced0854b35.png)
将客户端mogo文件在/bin下软链接,方便随处执行:
ln -s /usr/``local``/mongodb/bin/mongo /bin/mongo`
mongo客户端访问数据库 ./mongo
![](https://img.haomeiwen.com/i2255249/0d771ace4e47d5b9.png)
添加开机自启动:
编辑:/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
可查看版本!
![](https://img.haomeiwen.com/i2255249/532c74ea583188a2.png)
php加载mongo扩展:
打开phpinfo 查看 nts(非线程) 还是 ts (线程),操作位数;下载对应的版本!
![](https://img.haomeiwen.com/i2255249/79766e426291cb20.png)
编译安装php7的mongodb扩展
php7的PECL库的网址:http://pecl.php.net/,搜索mongodb下载合适的版本!
![](https://img.haomeiwen.com/i2255249/9a09d01c61a836bf.png)
解压,进入目录,然后执行命令:
phpize
./configure
make
#可能要执行make test
make install
#进入php安装目录执行
/usr/local/php/bin/pecl install mongo #(/usr/local/php/bin/pecl install mongodb)
![](https://img.haomeiwen.com/i2255249/8e9a8b048f3b94e5.png)
![](https://img.haomeiwen.com/i2255249/4dbbe6c2d1e148b2.png)
安装成功,扩展所在目录:
![](https://img.haomeiwen.com/i2255249/4602dc8dffa5879c.png)
php.ini文件加入mongo扩展:
![](https://img.haomeiwen.com/i2255249/d4df77dd2266c9ca.png)
phpinfo查看有无mongo模块:
![](https://img.haomeiwen.com/i2255249/1d3fcfdd9e5b7727.png)
查看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
![](https://img.haomeiwen.com/i2255249/3445ac8eba0b1eb1.png)
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
![](https://img.haomeiwen.com/i2255249/85016ce81e002ee7.png)
数据导入导出:
导出数据库:./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:qpl@127.0.0.1:27017/cwc_qpl_sys
,php页面依旧报错无权限:
解决:进入php安装目录找到pecl,执行: pecl upgrade mongo
更新php的mongo扩展!或者手动更新mongo版本。。。
![](https://img.haomeiwen.com/i2255249/de3ee117a1c12420.png)
> 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()
![](https://img.haomeiwen.com/i2255249/0ff7cd19956abd99.png)
鉴权:
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;
使用Robomongo连接远程数据库:
1、使用ssh连接远程服务器,输入IP地址,账号以及密码
![](https://img.haomeiwen.com/i2255249/8fe60c77a017ffe8.png)
2、切换Authentication选项,输入mongodb数据库,数据库账号以及密码
![](https://img.haomeiwen.com/i2255249/f7aabda9727e7aa4.png)
3、切换Connection选项,输入连接名称,Address和port,先Test通过了再Save!
![](https://img.haomeiwen.com/i2255249/a455b1a0b8357403.png)