[英]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.