SpringBoot整合虚拟机中的mongodb出错,该如何解决?

虚拟机使用的是Centos7,本地客户端测试连接mongodb都可以成功连接,但是在Springboot整合时候出错了。继续看下文吧!

错误如下!!!SpringBoot整合虚拟机中的mongodb出错,该如何解决?_第1张图片
SpringBoot整合虚拟机中的mongodb出错,该如何解决?_第2张图片

目录

  • 一:虚拟机中安装mongodb
    • 1、下载安装包
    • 2、解压
    • 3、移动到指定位置
    • 4、创建文件夹
    • 5、在/usr/local/mongodb/bin下新建配置
    • 6、启动
    • 7、进入mongodb
    • 8、关闭mongodb
    • 9、一定要记得查看端口号是否开放!(否则后面无法连接)
    • 10、创建用户管理员
    • 11、创建数据库
  • 二:SpringBoot整合mongodb
  • 总结

一:虚拟机中安装mongodb

1、下载安装包

官网:https://www.mongodb.com/download-center/community
或者使用命令

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.20.tgz

2、解压

我这里下载的是这个版本mongodb-linux-x86_64-rhel70-4.4.5.tgz

tar  -zxvf  mongodb-linux-x86_64-rhel70-4.4.5.tgz

3、移动到指定位置

一般是移动到/usr/local/mongodb中,使用命令

mov mongodb-linux-x86_64-rhel70-4.4.5 /usr/local/mongodb

4、创建文件夹

在 /usr/local/mongodb下创建两个文件夹

mkdir data #数据文件存放目录

mkdir logs #日志文件存放目录

5、在/usr/local/mongodb/bin下新建配置

vim mongodb.conf

dbpath=/usr/local/mongodb/data  #数据文件存放目录
logpath=/usr/local/mongodb/logs/mongodb.log  #日志文件存放目录
port=27017 
fork=true  #以守护程序的方式启用,即在后台运行
auth=true  #开启权限认证
bind_ip=0.0.0.0 #所有ip均可访问

6、启动

在/usr/local/mongodb/bin下

./mongod -f mongodb.conf

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y4v7nWvL-1619182187301)(C:/Users/Administrator/AppData/Roaming/Typora/typora-user-images/image-20210423204052711.png)]
如果显示的是上图这样的,就说明已经启动成功。

7、进入mongodb

在/usr/local/mongodb/bin下

./mongo

SpringBoot整合虚拟机中的mongodb出错,该如何解决?_第3张图片

显示这样就说明进入了Mongodb了

8、关闭mongodb

在/usr/local/mongodb/bin下

./mongod -f ./mongodb.conf  --shutdown

9、一定要记得查看端口号是否开放!(否则后面无法连接)

查看端口号是否开启
firewall-cmd --permanent --query-port=27017/tcp

开启指定的端口号
firewall-cmd --zone=public --add-port=27017/tcp --permanent

10、创建用户管理员

>use admin 
>db.createUser({user:"root",pwd:"root123456",roles:["userAdminAnyDatabase"]}) #用户名和密码自己可以自行定义 
>db.auth('root','root123456')

11、创建数据库

>use test

二:SpringBoot整合mongodb

本测试程序地址:https://gitee.com/code-to-xiaobai/spring-boot_-mongodb_demo

这里只需要在配置文件中写好配置就行,出错的原因也是因为mongodb的配置写错了。

只需要写这么一句:

spring.data.mongodb.uri=mongodb://root:[email protected]:27017/test?authSource=admin

在这里插入图片描述
1和2也就是上面第10步的时候创建的超级管理员和密码
3是自己虚拟机的ip地址(这里我其实很疑惑,mongodb.conf已经设置了bind_ip=0.0.0.0,但是还是要用虚拟机的ip地址,不知道你们是否也是这样。)
4是上面第11步创建的数据库
5也就是mongodb自带的admin数据库

创建一个SpringBoot得项目进行测试。

@Test
public void createUser() {
     
    User user = new User();
    user.setAge(20);
    user.setName("test");
    user.setEmail("[email protected]");
    User user1 = mongoTemplate.insert(user);
    System.out.println(user1);
}

SpringBoot整合虚拟机中的mongodb出错,该如何解决?_第4张图片
如果是这样,就代表已经成功了!

总结

在前两天整合Redis出现问题后,这次整合Mongodb解决问题快多了。如果你还有问题,可以评论区给我留言哦。希望以上可以解决你的问题。

时间:2021/4/23

你可能感兴趣的:(Java学习记录,数据库,linux,java,mongodb)