Mongodb基础
跳到导航
跳到搜索
目录
install
yum or apt
Docker mongo
install in Docker
bin
wget -c https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.0.tgz 在国内 可能有点慢 可以放国个下载再拉回来 什么的 mv mongodb-linux-x86_64-3.2.0/ /data/apps/mongodb echo 'export PATH=$PATH:/data/apps/mongodb/bin/' >> /etc/profile or cat >> /etc/profile <<EOF export PATH=$PATH:/data/apps/mongodb/bin EOF source /etc/profile
测试安装
portX 可选的指定端口,如果不填,默认为27017 新建一个目录data存放mongodb数据: mkdir /data/apps/mongodb/data/ 用以下其中一个命令启动mongod: mongod --dbpath /data/apps/mongodb/data/ mongod --dbpath /data/apps/mongodb/data --auth mongod --dbpath /data/apps/mongodb/data --config /etc/mongodb.conf --auth 这时mongod已经启动,重新打开一个终端, 键入mongo进入交互程序: $> mongo > show dbs ...数据库列表 3. 导入初始数据 leanote初始数据存放在 leanote/mongodb_backup/leanote_install_data中。 root@mypi3b:/data/apps# ls leanote/mongodb_backup/leanote_install_data/ albums.bson has_share_notes.bson share_notebooks.bson albums.metadata.json has_share_notes.metadata.json share_notebooks.metadata.json cat leanote/mongodb_backup/leanote_install_data/albums.metadata.json {"indexes":[{"v":1,"key":{"_id":1},"name":"_id_","ns":"leanote_bin_test.albums"},{"v":1,"key":{"UserId":1},"name":"UserId_1","ns":"leanote_bin_test.albums","background":true}]} 打开终端, 输入以下命令导入数据。 $> mongorestore -h localhost -d leanote --dir leanote/mongodb_backup/leanote_install_data/ $> mongo > show dbs # 查看数据库 leanote 0.203125GB local 0.078125GB > use leanote # 切换到leanote switched to db leanote > show collections # 查看表 files has_share_notes note_content_histories note_contents
MongoDB安全认证
常用命令
evan@myxps:~/downloads/mongosh-1.0.7-linux-x64/bin$ ./mongosh --host 192.168.10.120 --port 27018 Current Mongosh Log ID: 614beac584f560bae1d83f92 Connecting to: mongodb://192.168.10.120:27018/?directConnection=true > show dbs #显示数据库列表 > show collections #显示当前数据库中的集合(类似关系数据库中的表) > show users #显示用户 > use <db name> #切换当前数据库,如果数据库不存在则创建数据库。 > db.help() #显示数据库操作命令,里面有很多的命令 > db.foo.help() #显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令 > db.foo.find() #对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据) > db.foo.find( { a : 1 } ) #对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1 > db.dropDatabase() #删除当前使用数据库 > db.cloneDatabase("127.0.0.1") #将指定机器上的数据库的数据克隆到当前数据库 > db.copyDatabase("mydb", "temp", "127.0.0.1") #将本机的mydb的数据复制到temp数据库中 > db.repairDatabase() #修复当前数据库 > db.getName() #查看当前使用的数据库,也可以直接用db > db.stats() #显示当前db状态 > db.version() #当前db版本 > db.getMongo() #查看当前db的链接机器地址 > db.serverStatus() #查看数据库服务器的状态 use djs_kuafu_4; 建库 db.addUser("name","passwd");授权 MongoDB 删除数据库的语法格式如下: use 数据库名; db.dropDatabase() 删除当前数据库,默认为 test,你可以使用 db 命令查看当前数据库名。 实例 以下实例我们删除了数据库 runoob。 首先,查看所有数据库: > show dbsuse mongodb 常用命令 查看所有数据库 show dbs 查看当前选择的库 db 查看库下的所有集合 show tables show collections 删除库(这种方式删除数据目录还会有数据文件夹的) use dbname db.dropDatabase() 用这个方式可以清理文件下的内容,然后删掉目录即可 use s1 db.dropDatabase() db.repairDatabase() 删除集合 db.mytable.drop() 添加用户 use dbname db.addUser('admin','123456') 更改密码 db.addUser("admin","a123456") 删除用户 db.system.users.remove({admin:"a123456"}) 或者 db.removeUser('admin') 用户授权db.createUser({user:"su",pwd:"fenggu123$%^",roles:[ { role:"root", db:"admin" } ] }); db.auth('admin','a123456') ??????? 查看用户列表 db.system.users.find() 查看所有用户 show users 关闭服务 > use admin switched to db admin db.shutdownServer(); mongod --shutdown --dbpath /database/mongodb/data/ 查询集合 db.users.find() 条件查询 db.users.find({age:33}) 多个条件查询 db.users.find({age:33}),({a:1,b:1}) 查看负载 mongostat -h127.0.0.1:28018 -ufengguadmin -pfenggu123$%^ --authenticationDatabase=admin 备份所有 mongodump -h127.0.0.1:28018 -ufengguadmin '-pfenggu123$%^' -o /data/mongodb_backup/ -- authenticationDatabase=admin 恢复 mongorestore -h127.0.0.1:28018 -ufengguadmin -pfenggu123$%^ --db=s1 -- dir=/data/mongodb_backup/mongod_bak_now/2016_06_27/s1/ --authenticationDatabase=admin
监控
7启动脚本
https://github.com/mongodb/mongo/blob/master/rpm/mongod.service
[root@k8sn1 ~]# cat /etc/mongod.conf # mongod.conf # for documentation of all options, see: # http://docs.mongodb.org/manual/reference/configuration-options/ # where to write logging data. systemLog: destination: file logAppend: true # path: /var/log/mongodb/mongod.log path: /data/logs/mongod.log # Where and how to store data. storage: dbPath: /data/apps/mongodb/data/ # dbPath: /var/lib/mongo journal: enabled: true # engine: # mmapv1: # wiredTiger: # how the process runs processManagement: fork: true # fork and run in background pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile timeZoneInfo: /usr/share/zoneinfo # network interfaces net: port: 27017 bindIp: 127.0.0.1 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting. #security: #operationProfiling: #replication: #sharding: ## Enterprise-Only Options #auditLog: #snmp: [root@k8sn1 ~]# cat /var/run/mongodb/mongod.pid 2376 [root@k8sn1 ~]# ll /var/run/mongodb/mongod.pid -rw-r--r-- 1 mongod mongod 5 6月 16 15:24 /var/run/mongodb/mongod.pid [root@k8sn1 ~]# cat /usr/lib/systemd/system/mongod.service [Unit] Description=MongoDB Database Server After=network.target Documentation=https://docs.mongodb.org/manual [Service] User=mongod Group=mongod Environment="OPTIONS=-f /etc/mongod.conf" EnvironmentFile=-/etc/sysconfig/mongod ExecStart=/usr/bin/mongod $OPTIONS ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb PermissionsStartOnly=true PIDFile=/var/run/mongodb/mongod.pid Type=forking # file size LimitFSIZE=infinity # cpu time LimitCPU=infinity # virtual memory size LimitAS=infinity # open files LimitNOFILE=64000 # processes/threads LimitNPROC=64000 # locked memory LimitMEMLOCK=infinity # total threads (user+kernel) TasksMax=infinity TasksAccounting=false # Recommended limits for for mongod as specified in # http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings [Install] WantedBy=multi-user.target #sysv from . /lib/lsb/init-functions CONFIGFILE="/etc/mongod.conf" PROGRAM="/usr/bin/mongod" MONGOPID="/var/run/mongodb/mongod.pid" LOCK="/data/apps/mongodb/mongo/mongod.lock" test -x $PROGRAM || exit 0 case "$1" in start) ulimit -f unlimited ulimit -t unlimited ulimit -v unlimited ulimit -n 64000 ulimit -m unlimited log_begin_msg "Starting MongoDB server" $PROGRAM -f $CONFIGFILE log_end_msg 0 ;; stop) log_begin_msg "Stopping MongoDB server" # if [ -f $LOCK ]; then # rm $LOCK # fi if [ ! -z "$MONGOPID" ]; then kill $MONGOPID fi log_end_msg 0 ;; status) ;; *) log_success_msg "Usage: /etc/init.d/mongodb {start|stop|status}" exit 1 esac #!/bin/sh # chkconfig: - 64 36 # description:mongod case $1 in start) /usr/local/mongodb/bin/mongod --maxConns 20000 --config /usr/local/mongodb/mongodb.conf ;; stop) /usr/local/mongodb/bin/mongo 127.0.0.1:27017/admin --eval "db.shutdownServer()" ;; status) /usr/local/mongodb/bin/mongo 127.0.0.1:27017/admin --eval "db.stats()" ;; esac
关闭
ps -ef | grep mongod root 3894 6353 1 20:04 ? 00:00:04 /usr/bin/mongod -f /etc/mongod.conf root 9366 30672 0 20:09 pts/12 00:00:00 grep --color=auto mongod [root@beta- etc]# kill -2 3894 6353 [root@beta- etc]# ps -ef | grep mongod root 9828 30672 0 20:09 pts/12 00:00:00 grep --color=auto mongod
docker-compose安装mongodb
参考
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
www.runoob.com Linux平台安装MongoDB
https://www.mongodb.org.cn/tutorial/59.html
win mongodb官网下载不了, MongoDB下载、安装、配置、使用,如何下载MongoDB数据库,MongoDB入门
NOSQL -- Mongodb的简单操作与使用(win10)