如何转义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连接字符串中的特殊字符的主要内容,如果未能解决你的问题,请参考以下文章

如何在mysql数据库中鎒moji特殊字符

如何让在Html中特殊字符不被转义

“@”的转义字符——JDBC?

php mysql转义特殊字符的函数都有哪些

java 连接mysql时 怎么对特殊字符转译 例如某个字符 :灰\ 怎样对\ 进行转译

使用 SQLAlchemy 转义文件路径中的特殊字符