如何在MySQL JDBC连接字符串中转义特殊字符

12

我正在尝试连接到一个远程数据库。我确信远程数据库为我提供了所有的权限。但是,当我尝试通过 jdbc连接 连接到远程 MySQL 数据库时,我遇到了这个错误。我的密码包含 * 和 & 符号,我认为这可能是引起这个 错误 的问题。但我不知道如何 转义这些字符。请帮忙。

java.sql.SQLException: Access denied for user 'myusername'@'myhost' (using password: YES)

"jdbc:mysql://myhost/mydb?user=myusername&password=my&password*"

请帮忙

敬礼


1
你的意思是你的密码是(my&password*)吗??? - Nipun Jain
i) 尝试将端口添加到服务器 ii) http://grokbase.com/t/mysql/java/03cvhkkd6b/how-to-in-password - TJ-
我尝试过使用"&",但没有起作用。我还尝试添加端口,但出现相同的错误。我正在使用MySQL 5.1.22 J连接器。还有其他建议吗? - ishk
2个回答

20

JDBC连接字符串采用URL格式,因此您必须对所有参数使用URL编码值。在您的情况下,连接字符串应该如下所示:

"jdbc:mysql://myhost/mydb?user=myusername&password=my%26password%2A"

2

URLEncoder 可以被使用:

String connectionString = "jdbc:mysql://myhost/mydb?" + URLEncoder.encode("user=myusername&password=my&password*", "UTF-8");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接