繁体   English   中英

java jdbc mysql:如何在带有特殊字符的属性文件中存储凭据?

[英]java jdbc mysql: how to store credentials in properties file with special characters?

我正在尝试通过Java程序使用JDBC连接到MySQL。 该程序从属性文件中读取以获取凭据(URL,用户名,密码)。 我们在密码中使用特殊字符,例如^,&,*,@。

属性文件的一部分如下所示:

mysql.username=bob
mysql.password=th1$is^my@pa$$w*rd   (not the real password, but for the sake of discussion)

堆栈跟踪中的错误如下所示:错误:无法连接到数据库:[43008]访问被拒绝:用户'bob'@''(使用密码:是)

我确认该程序能够读取密码(通过将其打印到控制台)。 好像是我缺少的某种转义序列?

搜索谷歌,并问了一些同事,但似乎没人知道答案。

任何帮助表示赞赏。 提前致谢。

堆栈跟踪中的错误如下所示:错误:无法连接至数据库:[43008]访问被拒绝:用户'bob'@''

有您的答案,更具体地说是“ bob” @``片段。 这告诉您没有主机(或空主机)的use bob试图连接到MySQL数据库,我几乎可以肯定这不是您要尝试的。

解决方案在于确保获得正确的URL以连接到数据库:

String url = "jdbc:mysql://"+HOST+"/" + DB; //Double check your HOST constant

Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection(url, userName, password);

希望对您有所帮助。 干杯

编辑:

顺便说一下,您以正确的方式存储了通行证,应该在属性文件中使用的唯一字符是:

\t \n \r \\ \" \' \ (space) \= \:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM