问题描述
我正在使用运行时 3.9.4EE 的 anypoint studio 6.6.8。 我有以下 mssql 通用数据库连接字符串。
jdbc:sqlserver://ABC.org:59000;databaseName=master;username=nrp;password=*37n%3b#wu;5r:;_1z~(f{1y{j
测试连接给我以下错误:
Test connection Failed:
org.mule.module.db.internal.domain.connection.ConnectionCreationException: Cannot get connection for URL jdbc:sqlserver://ABC.org:59000;databaseName=master;username=nrp;password=<<credentials>>;5r:;_1z~(f{1y{j: The connection string contains a badly formed name or value
PS:我的密码中有 2 个分号
我之前曾多次看到这里提出过类似的问题,因此我的问题可能看起来是重复的。 但是我尝试了回复中给出的以下解决方案。他们都没有工作。如果您有任何替代解决方案,请告诉我。
解决方法
连接字符串的格式为 JAVA JDBC URL。它类似于一个普通的 URL。 URL 中不允许使用许多字符,必须使用 URL encoding 方法进行编码。尝试对整个 URL 使用 URL 编码。您可以使用大多数语言或在线页面执行此操作,但您可能希望避免使用包含密码等敏感信息的公共页面。
- Groovy 中的示例:https://stackoverflow.com/a/10187493/721855。
- Python 示例:https://stackoverflow.com/a/5607708/721855。
谢谢@aled
所以 {} 确实有效。我这样做是错误的。 我正在对密码进行加密,然后将 {} 连接到通过连接字符串传递的 b4 解密密码。
有效的是我先将密码包含在 {} 中,然后对其进行加密。