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
1、改 /etc/mongod.conf
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 <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:\data\dump
-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 d:/data/dump/test.tar.gz Jerry@IP:/home/Jerry/dbbackup/
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 中
为上线项目配置 MongoDB 数据库读写权限
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