MongoDB下载包获取
- https://www.mongodb.com/try/download/community
安装配置
安装
第一步:在服务器 /data下创建 MongoDB 文件夹,用来存放安装包、服务以及之后 MongoDB 的数据库和日志文件。
cd /data // 进入安装目录
mkdir MongoDB // 创建MongoDB文件夹
cd MongoDB // 进入创建的MongoDB文件夹
mkdir source // 在MongoDB文件夹下创建source文件夹用于保存安装包
mkdir data // 在MongoDB文件夹下创建data文件夹用于后续数据库信息保存
mkdir log // 在MongoDB文件夹下创建log文件夹用于保存数据库日志
第二步: 将官网下载的安装包通过FTP工具上传至服务器上一步创建的 MongoDB/source 文件夹下,执行下面解压命令
cd /data/MongoDB/source
tar -zxvf 安装包名称 -C /usr/local/MongoDB
第三步: 重命名解压文件夹名称,方便后续使用
cd /data/MongoDB
mv 解压文件夹名称 mongodbServer // 将解压后的文件夹名称重命名为 mongodbServer
配置
第一步: 将 mongod 命令路径添加到系统命令中,这样就可以在任何路径都可以执行 mongod 命令。
在 /etc/profile 文件中添加以下配置:
export MONGODB_HOME=/data/MongoDB/mongodbServer
export PATH=$PATH:$MONGODB_HOME/bin
上面 MONGODB_HOME 的路径就是我们之前解压安装包后保存服务的路径
执行命令使系统环境变量生效:
source /etc/profile
第二步:配置 MongoDB 启动文件
在 mongoDB 服务的 bin 文件夹下创建 mongod.conf 文件
cd /data/MongoDB/mongodbServer/bin
vim mongod.conf
按 i 键进入编辑模式,写入以下配置
storage:
#mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod
dbPath: "/data/MongoDB/data" #数据文件存放目录
systemLog:
#MongoDB发送所有日志输出的目标指定为文件
destination: file
#mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
path: "/data/MongoDB/log/mongod.log" #日志文件存放目录
#当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾
logAppend: true
net:
port: 27018 #端口
bindIpAll: true #监听所有ip
processManagement:
fork: true #以守护程序的方式启用,即在后台运行
security:
authorization: enabled #开启校验用户,数据库连接时需要输入用户名密码
测试启动
在任意路径下执行命令启动 mongoDB 服务
mongod --config /usr/local/MongoDB/mongodbServer/bin/mongod.conf
出现以下画面即启动成功,此时就可以进去 mongoDB 数据库了
进入数据库,任意路径执行以下命令,即可进入 mongoDB 的 shell 命令行
mongo
指定数据库添加管理用户
打开 mongoDB 的 shell 命令行界面后,进入默认的 admin 数据库
use admin // 进入 admin 数据库
use simple-design // 进入 simple-design 数据库 默认没有会创建,没有数据不会显示
db.createUser({ user: 'name', pwd: 'password', roles: [{ role: 'dbOwner', db: 'simple-design' }] }) // 为名为 simple-design 的数据库添加数据库管理员,账号为 name,密码为 password, 角色权限为 dbOwner
常用 mongoDB 角色
数据库用户角色: read、 readWrite
数据库管理角色:dbAdmin、dbOwner、userAdmin
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
备份恢复角色:backup、restore
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root
内部角色: __system
设置 MongoDB 服务为系统服务
在 /etc/init.d 文件夹下创建 mongod 文件
vim /etc/init.d/mongod
写入如下配置(相关路径配置就是我们上面的配置路径):
#!/bin/bash
start() {
/usr/local/MongoDB/mongodbServer/bin/mongod --config /usr/local/MongoDB/mongodbServer/bin/mongod.conf
}
stop() {
/usr/local/MongoDB/mongodbServer/bin/mongod --config /usr/local/MongoDB/mongodbServer/bin/mongod.conf --shutdown
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
保存后执行脚本权限命令:
chmod +x /etc/init.d/mongod
systemctl unmask mongod.service
启动 mongoDB 系统服务
第一次启动前需先杀掉之前手动启动的 mongoDB 服务,
netstat -lnpt |grep 27017 命令查看服务id,kill -9 服务id 即可
service mongod start
通过以下命令查看当前运行的系统服务,里面包含 mongod 服务即启动成功
service --status-all
Mongodb常用命令行
1.登录本地mongo数据库
mongo --host 192.168.1.111 --port 27018 -u "root" -p "123zxcv" --authenticationDatabase "admin" //登陆admin库
2.查看所有数据库
show dbs
3.创建数据库如果数据库不存在,则创建数据库,否则切换到指定数据库
use db_name
3.1向runoob表中插入数据
db.runoob.insert({"name":"菜鸟教程"})
4.删除数据库
4.1 使用某个库
use db_name
4.2 查看当前数据库
db
4.3 删除该库
db.dropDatabase()
4.4 删除用户
db.dropUser("mongo")
5.操作某个库下的集合(表)
5.1 使用某个库
use db_name
5.2 查看该库下的所有表
show tables
或者
show collections
5.3 查询表中所有数据
db.表名.find()
5.4 创建一个集合(表)
db.createCollection("table_name")
5.5 删除该表
db.table_name.drop()
5.6 根据条件删除某个集合的数据
db.category.deleteMany({'error':"Not Found"})
6.mongoexport从mongo中导出数据到json文件
6.1 导出某个库下某个表的所有数据
mongoexport --host <ip> --port <port> -d <db_name> -u <user_name> -p <password> --authenticationDatabase admin -c <table_name> -o <file_name>.json
例如:
mongoexport --host 192.168.1.111 --port 27018 -d db_name -u root -p 123zxcv --authenticationDatabase admin -c table_name -o file_name.json
6.2 根据条件导出数据
mongoexport --host <ip> --port <port> -d <db_name> -u <user_name> -p <password> --authenticationDatabase admin -c <table_name> -q '{"$or":[{"userId":"8855e628456846fcbf24c5b380387d6d"},{"userId":"62ce749998c34cc3adac00b6b144ef9b"}}]}' -o <file_name>.json
例如:
mongoexport --host 192.168.1.111 --port 27018 -d db_name -u root -p 123zxcv --authenticationDatabase admin -c table_name -q '{"$or":[{"userId":"8855e628456846fcbf24c5b380387d6d"},{"userId":"62ce749998c34cc3adac00b6b144ef9b"}}]}' -o file_name.json
7.mongoimport将json数据导入到mongo中
mongoimport --host <ip> --port <port> -d <db_name> -u <user_name> -p <password> --authenticationDatabase admin -c <table_name> --file <file_name>.json
例如:
mongoimport --host 192.168.1.111 --port 27018 -d db_name -u root -p 123zxcv --authenticationDatabase admin -c