MySQL Database on Azure是中国版Windows Azure上的一个PaaS服务,类似于AWS上的RDS。
MySQL Database on Azure的用户名与on-premises版本的MySQL有一些差别,其命名规则为:服务器名%用户名,即:用户名中包含了一个百分号(%),这就会导致Java无法正确解析JDBC的URL:例如:
mysql://myserver%webuser:mypassword@mysqlservices.chinacloudapp.cn/mydatabase
当然,我们可以换一种写法来使JDBC的URL更加优雅,但是对于很多使用第三方framework开发的系统来说,修改代码并非轻而易举——谁都不愿意去找麻烦。
好吧,其实只要把百分号(%)写成:%25,就没有问题啦。例如:
mysql://myserver%25webuser:mypassword@mysqlservices.chinacloudapp.cn/mydatabase
至于原理嘛,很简单——URL Encoding...