如何转义mysql jdbc连接字符串中的特殊字符
Posted
技术标签:
【中文标题】如何转义mysql jdbc连接字符串中的特殊字符【英文标题】:how to escape special characters in mysql jdbc connection string 【发布时间】:2012-12-08 16:55:00 【问题描述】:我正在尝试连接到远程数据库。我确定远程数据库为我提供了所有权限。但是当我尝试通过jdbc connection
连接到远程 mysql 数据库时出现此错误。我的密码包含* and & symbol
,我认为这是error
的问题原因。但我不知道如何escape those characters
。请帮忙
java.sql.SQLException: Access denied for user 'myusername'@'myhost' (using password: YES)
"jdbc:mysql://myhost/mydb?user=myusername&password=my&password*"
请帮忙
问候
【问题讨论】:
你的意思是你的密码是 (my&password*") ???? i) 尝试将端口添加到服务器 ii) grokbase.com/t/mysql/java/03cvhkkd6b/how-to-in-password 我试过 &但它没有用,我也添加了端口,但它给了我同样的错误。我使用 mysql 5.1.22 j 连接器。还有其他建议吗? 【参考方案1】:URLEncoder可以用:
String connectionString = "jdbc:mysql://myhost/mydb?" + URLEncoder.encode("user=myusername&password=my&password*", "UTF-8");
【讨论】:
【参考方案2】:JDBC 连接字符串为 url 格式,因此您必须对所有参数使用 URL 编码值。在您的情况下,连接字符串应如下所示:
"jdbc:mysql://myhost/mydb?user=myusername&password=my%26password%2A"
【讨论】:
以上是关于如何转义mysql jdbc连接字符串中的特殊字符的主要内容,如果未能解决你的问题,请参考以下文章