当前位置: 首页 > article >正文

Java编程,配置mongoUri连接mongodb时,需对特殊字符进行转义

一、背景

java程序连接mongo有两种方式:

  • 用户名和密码方式
  • uri方式

1、用户名和密码

以用户数据库为例,注意看它的密码

spring:
  data:
    mongodb:
      host: 192.168.10.17
      database: db_user_service
      port: 3717
      username: user_service
      password: user_service@321

2、uri

转换为uri方式,就只需要一行搞定。

# 这里的密码假设为123456,如果像上面那样含有特殊字符,则需要进行转义

spring:
  data:
    mongodb:
      uri: mongodb://user_service:123456@192.168.10.17:3717/db_user_service?maxIdleTimeMS=60000&maxPoolSize=50

有时候,为了安全性,dba会设置比较复杂的密码,含有特殊字符,比如@符号等。

如果使用方式一(用户名和密码)连接mongodb时,password里支持@符号。

但是,如果使用方式二(uri)连接,则需要对@符号转义为%40

否则java程序在解析uri的时候,会提前截取到第一个@,把前半部分错认为数据库的密码。

在这里插入图片描述

二。解决办法

当使用uri方式连接mongodb时,对特殊符号,特别是@符号,进行转义。

转换的结果是:

spring:
  data:
    mongodb:
      uri: mongodb://user_service:user_service%40321@192.168.10.17:3717/db_user_service?maxIdleTimeMS=60000&maxPoolSize=50

这里顺便说一下,如果是Mysql数据库的密码含有!感叹号这样的特殊字符,它的转义方式则是反斜杠。

  • 修改前
# 85f7e!d2e6X是用户数据库的实际密码
mysql -h 192.168.10.18 -u user_service -p85f7e!d2e6X -D db_user_service
  • 修改后
# 85f7e\!d2e6X是转义后的结果
mysql -h 192.168.10.18 -u user_service -p85f7e\!d2e6X -D db_user_service

涉及到需要转义的字符有很多,这里就不一一赘述了。

遇到特殊字符的时候多留个心眼,设置数据库密码的时候,不要太复杂了哈。

比较是在内网环境下,不对外网访问的情况下,密码相对安全即可。(少折腾特殊字符)


http://www.kler.cn/a/405678.html

相关文章:

  • 基于AOA算术优化的KNN数据聚类算法matlab仿真
  • 【网络云计算】2024第47周-每日【2024/11/21】周考-实操题-RAID6实操解析3
  • 麒麟部署一套mysql集群,使用ansible批量部署可以提高工作效率
  • OS 的运行和结构
  • el-table-column自动生成序号在序号前插入图标
  • 利用c语言详细介绍下希尔排序
  • springboot基于java语言的医疗设备管理系统
  • pytorch 的交叉熵函数,多分类,二分类
  • 经济增长初步
  • 初见哈希表容器,及哈希表模拟
  • NLP论文速读(CVPR 2024)|使用DPO进行diffusion模型对齐
  • 昨天刚发布的新机,把前置镜头彻底干没了
  • coe文件转mif(c语言)
  • Gooxi受邀参加海通证券AI+应用生态大会,助力数智金融高质量发展
  • DrugLLM——利用大规模语言模型通过 Few-Shot 生成生物制药小分子
  • 简易安卓句分器实现
  • 论文 | Learning to Transfer Prompts for Text Generation
  • 实现金蝶云星空与钉钉数据无缝集成的技术方法
  • Halo 正式开源: 使用可穿戴设备进行开源健康追踪
  • 02:spring之AOP