mongodb的安装与使用
- 前言
- 一、linux下载
- 二、mongodb配置
- 三、 mongodb服务管理
- 启动
- 服务查看
- 停止
- 四、远程连接
- 五、SpringBoot整合
- 总结
前言
本文主要针对一些项目的部署服务器在使用方面用到了mongodb,参考解决一些部署方面遇到的问题。
一、linux下载
-
使用wget下载
wget https://downloads.mongodb.com/linux/mongodb-linux-x86_64-enterprise-rhel70-4.2.8.tgz
-
解压
tar -zxvf mongodb-linux-x86_64-enterprise-rhel70-4.2.8.tgz
-
移动文件到指定目录,方便后续配置信息
mv mongodb-linux-x86_64-enterprise-rhel70-4.2.8 /usr/local/mongob
二、mongodb配置
首先到达mongodb目录下
cd /usr/local/mongodb
-
创建相应文件mongo文件
需要注意的是-p的意思是创建多级目录
mkdir data/log -p
创建日志文件,用于存放生成的日志
touch mongodb.log
- 载入配置信息
- 进入编辑文件目录文件
vim mongodb.conf
- 编辑信息
# 端口号
port=27017
# 数据库文件位置
dbpath=/usr/local/mongodb/data/db
# 日志文件位置
logpath=/usr/local/mongodb/data/logs/mongodb.log
# 以追加日志的形式记录
logappend=true
# 滤掉无用日志信息,若需要调试使用请设置为false
quiet=true
# 以后台方式运行
fork=true
# 最大同时连接数
maxConns=100
# 不启用验证权限
noauth=true
# 启用用户账号权限
# auth=true# 提供外网访问,不对ip进行绑定,原理同redis的bindip
bind_ip = 0.0.0.0
# 开启日志,默认true
journal=true
# 提供外网访问,不对ip进行绑定,原理同redis的bindip
bind_ip = 0.0.0.0
- 配置全局变量
- 编辑文件
vim /etc/profile
- 相关代码
# Set MongoDB Configration
export PATH=/usr/local/mongodb/bin:$PATH
- 保存配置信息
source /etc/profile
- 配置开启密码
- 进入mongo目录下,编辑配置信息
# 不启用验证权限
#noauth=true
# 启用用户账号权限
auth=true
注意:修改上述两个之后重启mondodb配置才能生效
2. 进入配置全局之后直接输入mongo进入mongo数据库中
3. 进入admin数据库中
use admin
- 配置密码
这里用户名与密码随机设置
db.createUser({user:"你的用户名",pwd:"你的密码",roles:["root"]})
但是后面roles需要根据根据权限进行设置,具体权限参考下图
这里设置成功之后会提示如下信息
Successfully added user: { "user" : "你的用户名", "roles" : [ "root" ] }
- 输入下列命令查看命令是否正确
MongoDB Enterprise > db.auth("你的用户名","你的密码")
1
正确就会弹出1
三、 mongodb服务管理
下面接收它的基本操作
启动
到目录mongo下通过上述配置过的配置文件进行启动
mongodb -f mongodb.conf
- 启动之后会有如下提示信息
[root@iZuf62wjxn3dumrn6z8eemZ mongodb]# mongod -f mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 24109
ERROR: child process failed, exited with error number 48
To see additional information in this output, start without the "--fork" option.
输入mongo就可以进入mongo中。
- 如果启动遇到下面问题
Cannot connect to MongoDB. No suitable servers found: `serverSelectionTimeou
解决:使用下面这条命令
yum install net-snmp
服务查看
- 可以根据占用端口号查看
netstat -anp|grep 27017
- 可以根据服务查看
ps -ef|grep mongo
停止
- 快速关闭(直接杀死进程)
为了防止数据损坏需要使用
kill -2 进程 来结束进程
- 优雅的关闭
需要登录客户端mongo
切换到amdin库
use admin
命令关闭
db.shutdownServer()
四、远程连接
最后在远程配置好mongodb之后我们想在本地访问,步骤如下
- 首先进入配置目录,编辑配置信息
vim mongodb.conf
- 修改配置信息
如果bind_ip为127.0.0.1就是只能本机访问,需要修改为0.0.0.0
#提供外网访问,不对ip进行绑定,原理同redis的bind ip
bind_ip = 0.0.0.0
- 按照上述方式重启服务,这里我使用navicat进行连接
- 没有设置密码
就在验证那里选择None
- 如果按照上述设置密码之后
在验证哪里选择password,输入上述在admin中配置的密码与账号
五、SpringBoot整合
最后我们在java中将mongodb整合进来
- pom依赖
<!-- mongodb -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
需要注意的是这里的mongodb还是需要和对应的SpringBoot版本匹配,这里我就不多做建议了
2. yml配置
data:
mongodb:
uri: mongodb://你的账号:你的密码@你的公网地址:27017/分配的数据库
注意如果遇到如下错误:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mongo' defined in class path resource [org/springframework/boot/autoconfigure/mongo/MongoAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.mongodb.client.MongoClient]: Factory method 'mongo' threw exception; nested exception is java.lang.IllegalArgumentException: The connection string is invalid. Connection strings must start with either 'mongodb://' or 'mongodb+srv://
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:655) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:635) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) ~[spring-beans-5.2.8.RELEASE.jar:5.2.8.RELEASE]
- 开启mongo的注解
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
@SpringBootApplication
@EnableMongoRepositories
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
如果遇到错误多半是因为uri没有配置正确,好好检查一下就可以了。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了mongodb的使用,而mongodb在使用中遇到的常用命令我会在下一篇文章中讲到,尽情关注