无法使用spring连接到Azure SQL数据库服务器

时间:2016-02-04 09:21:15

标签: java spring azure azure-sql-database

我能够连接到具有IP地址的数据库,但是如果 我在Azure SQL数据库服务器中创建了我的数据库,因为我无法使用Spring配置Java Web应用程序进行连接。它显示错误说

与主机vinayaka.cloudapp.net,555的连接,命名实例sqlexpress失败。错误:" java.net.UnknownHostException:vinayaka.cloudapp.net,555"。验证服务器和实例名称,并检查没有防火墙阻止到端口1434的UDP流量。对于SQL Server 2005或更高版本,请验证主机上是否正在运行SQL Server Browser服务。

弹簧-config.xml中

<bean id="dataSource"  
  class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
  <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />  
  <property name="url" value="jdbc:sqlserver://vinayaka.cloudapp.net,555\sqlexpress;database=Sample" />  
  <property name="username" value="user" />  
  <property name="password" value="pass" />    
 </bean> 

注意:

1)我可以在SQL Server Management Studio中打开并使用该服务器。

2)如果我能够在SQL Server Management Studio中打开,则表示防火墙允许我的计算机IP地址。

3)我可以连接到Azure SQL数据库中创建的数据库。

请就此提出建议。

3 个答案:

答案 0 :(得分:1)

Azure SQL Database for JDBC的连接字符串类似于jdbc:sqlserver://<hostname>.database.windows.net:1433;database=<dbname>;user=<user>@<hostname>;password={your_password_here};encrypt=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;

您可以在Azure旧门户网站或新门户网站上查看Azure SQL数据库的连接字符串,请参阅下面的图片。

图1.检查Azure旧门户上的JDBC连接字符串 enter image description here

图2.检查Azure新门户上的JDBC连接字符串 enter image description here

答案 1 :(得分:0)

555端口是否由数据库公开以进行连接? 连接字符串不应该是这样的吗?

<property name="url" value="jdbc:sqlserver://vinayaka.cloudapp.net:555\sqlexpress;database=Sample" />  

我已使用,

替换了代码中的:

答案 2 :(得分:0)

更改连接字符串,例如“jdbc:sqlserver:// {HostName} .database.windows.net; database = {databaseName}; encrypt = true; hostNameInCertificate = * .database.windows.net; loginTimeout = 30”。 并使用sqljdbc4 jar文件。希望它能起作用。