您的位置:首页 > 游戏 > 手游 > 企业软件解决方案_水印在线制作网站_bing搜索引擎下载_百度怎么发帖子

企业软件解决方案_水印在线制作网站_bing搜索引擎下载_百度怎么发帖子

2024/12/27 20:15:49 来源:https://blog.csdn.net/zhuganlai168/article/details/143962109  浏览:    关键词:企业软件解决方案_水印在线制作网站_bing搜索引擎下载_百度怎么发帖子
企业软件解决方案_水印在线制作网站_bing搜索引擎下载_百度怎么发帖子

一、背景

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

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

1、用户名和密码

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

spring:data:mongodb:host: 192.168.10.17database: db_user_serviceport: 3717username: user_servicepassword: 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

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

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

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com