Ubuntu 上安装 mongoDB
安装 mongoDB
https://docs.mongodb.com/manu...
以 Ubuntu 14.04
为例:
1、sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
2、echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
3、sudo apt-get update
4、sudo apt-get install -y mongodb-org
修改默认端口号 27107
2、重置配置 sudo service mongod restart
3、防火墙规则 /etc/iptables.up.rules
添加,允许数据库访问端口27018
-A INPUT -s 127.0.0.1 -p tcp --destination-port 27018-m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -d 127.0.0.1 -p tcp --source-port 27018-m state --state ESTABLISHED -j ACCEPT
4、重载规则 sudo iptables-restore < /etc/iptables.up.rules
操作 mongoDB
sudo service mongod stop
sudo service mongod start
sudo service mongod restart
cat /var/log/mongodb/mongod.log // 查看数据库是否运行成功,末行如下:
[initandlisten] waiting for connections on port
一些 hin 常用的命令
mongo --port 27019
show dbs
use dbname // 数据库不存在则创建
db.dropDatabase() // 删除
show tables / collections // 当前数据库下所有的集合
db.createCollection( 'User'[, options] ) // 创建新集合
db.User.drop() // 删除集合
db / db.getName() // 当前数据库名
db.getMongo() // connection to 127.0.0.1:27018
db.stats() // 统计
db.version() // 版本
增删改查
这不是重点..
db.User.insert({'username':'july', 'age':'18'})
db.User.save({'username':'jucy', 'age':'18'})
db.User.find({'age':'18'})
db.User.update({'username': 'july'}, {$set:{'age':'20'}}, false, true )
db.User.remove({'username': 'july'})
往线上的 mongoDB
导入 数据库 或 单表数据
导入数据库
0、cd 到 mongoDB
的安装路径下的 bin
1、备份本地数据库 mongodump -h 127.0.0.1:27018 -d test -o /d/db
-h mongodb所在的服务器地址,本机地址
-d 指定需要备份的数据库实例
-o 指定备份数据库的存放位置
2、打包压缩 tar zcvf test.tar.gz test
注:tar.gz 是Linux下的常用压缩格式,window下的解决办法: 7-zip http://blog.csdn.net/ithomer/article/details/5111965
3、上传到服务器 scp -P 39999 ./test.tar.gz Jerry@IP:/home/Jerry/dbbackup/
(注意指定端口号用大写的"P")
4、服务端解压缩 tar xvf test.tar.gz
5、配置到线上 mongoDB
中 mongorestore --host 127.0.0.1:27018 -d testdb ./dbbackup/test/
导入单表数据
0、数据库备份在 d:\data\dump
, 就从这里开始操作
1、导出 mongoexport -d testdb -c users -q '{"name":{$ne:null}}' -o ./test-users.json
-d 从哪里
-c 哪张表
-q 条件
-o output 到同级目录下的test-user.json
2、上传 scp
3、导入到目标数据库 -d testdb
的表 -c users
中: mongoimport --host 107.0.0.1:19999 -d testdb -c users ./test-users.json
从一台服务器 A
迁移数据到另一个 B
线上 MongoDB 中
- 从
A
导出下载到本地 - 上传至
B
。按照导入 数据库 | 单表 的步骤来..
为上线项目配置 MongoDB 数据库读写权限
1、创建管理员账号和用户。
mongo --port 27018
// 管理员账号
use admin
db.createUser({'user':'super-user', pwd: 'Safe1234*'}, roles: [{role: 'userAdminAnyDatebase', db:'admin'}]})
db.auth('super-user', 'Safe1234*') //授权
// 创建用户,和只读备份用户。去admin下授权
use testdb
db.createUser({'user':'test-runner', pwd: 'Test1234*'}, roles: [{role: 'readWrite', db:'testdb'}]})
db.createUser({'user':'test-wheeler', pwd: 'Backup1234*'}, roles: [{role: 'read', db:'testdb'}]})
use admin
db.auth('test-runner', 'Test1234*')
db.auth('test-wheeler', 'Backup1234*')
2、打开验证模式 sudo vi /etc/mongod.conf
, 重启sudo service mongod restart
security:
authorization: 'enabled'
3、管理员可管理所有数据库,但操作之前需要先认证 db.auth('username','pwd')
; 用户只能在用户所在的数据库登录 mongo 127.0.0.1:27018/testdb -u username -p pwd