2013-06-11 189 views
0

我无法弄清楚连接到SQL Server 2012本地实例LocalDB或SQLExpress。我在路径中有Microsoft的sqljdbc4.jar驱动程序。我使用Mule 3.3.1 CE;我还没有EE可用。Mule连接到SQL Server 2012

我尝试使用LocalDB没有成功。我发现一些帖子指出LocalDB可能与MS的驱动程序不兼容,并推荐切换到SQLExpress。但是,仍然没有运气。

我能够使用SQLCMD(例如“sqlcmd -S DEFTA-1 \ SQLEXPRESS”)和SSMS使用我的流中的凭据连接到我的SQLExpress实例。

我的数据源和连接器的结构是如下所示:

<spring:beans> 
    <spring:bean id="SQLServer_DataSource" name="Bean" class="org.enhydra.jdbc.standard.StandardDataSource"> 
     <spring:property name="driverName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/> 
     <spring:property name="url" value="jdbc:sqlserver://DEFTA-1\SQLEXPRESS:1433;user=test_user;password=test_pwd;"/> 
    </spring:bean> 
</spring:beans> 

<jdbc:connector name="Database" dataSource-ref="SQLServer_DataSource" 
    validateConnections="true" queryTimeout="-1" pollingFrequency="0" doc:name="Database"> 
    <jdbc:query key="InsertRecord" value="insert into eai.dbdusage (id,name) values (1,'hello world')"/> 
</jdbc:connector> 

我试图改变服务器规范使用双反斜杠在服务器名称,离开关闭的端口号,使用& #92;而不是反斜杠......没有任何作用。我也试过类似“jdbc:sqlserver:// localhost:1433; instanceName = DEFTA-1 \ SQLEXPRESS ...”和“jdbc:sqlserver:// localhost:1433; instanceName = SQLEXPRESS ...”

例外情况是:

无法获取URL jdbc的连接:sqlserver:// DEFTA-1 \ SQLEXPRESS:1433; user = test_user; password = test_pwd; :与主机DEFTA-1,端口1433的TCP/IP连接失败。错误:“连接被拒绝:connect。验证连接属性确保SQL Server的一个实例正在主机上运行,​​并且在端口上接受TCP/IP连接请确保与端口的TCP连接没有被防火墙阻止“。

有什么我需要做的,以启用SQL Server端的连接,或者我需要对我的配置进行一些更改?

回答

0

您是否在SQL Server上启用了TCP/IP访问? http://msdn.microsoft.com/en-us/library/hh231672.aspx

+0

是的,我已经经历了这些步骤为的SQLExpress实例了。 – Tad

+0

我也转移到另一台机器(DEFTA01-M4600),其中SQLExpress以前不存在,因此我进行了全新安装。我在那里启用了TCP/IP。我在那里创建了一个测试用户(eai_svc)。我测试了我可以使用SQLCMD连接到数据库,它工作。进入Mule并使用值“jdbc:sqlserver:// DEFTA01-M4600 \ SQLEXPRESS:1433; user = eai_svc; password = eaiteam;”对于数据源上的url属性,我得到了同样的失败。 – Tad

+0

这并没有解决我的问题。 – SchmitzIT

0

我进入netstat并注意到sqlserver.exe正在侦听端口63304.更改为数据源字符串中的端口号允许我连接。

我对此感到困惑,因为我认为SQL Server默认总是在端口1433上(干净安装),但这个工作。

1

这个职位真的帮了我:http://java.dzone.com/articles/six-possible-solutions-jdbc-%E2%80%93

更具体点#3

3,如果您仍然面临着问题,那么请检查注册表◦Go开始菜单=>运行=>注册表编辑器 ◦转到HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ MSSQL10。[Instance Name] \ MSSQLServer \ SuperSocketNetLib \ Tcp \ IPAll并检查关键TcpDynamicPorts的值。我们必须考虑该端口号,而不是默认端口1433

在你的连接使用是在这里,而不是1433年对我来说是26625

+0

这对我有效。谢谢! – SchmitzIT

0

我得到了同样的问题,去掉了端口值,现在我能够使连接

试试这个:

jdbc:sqlserver://${mssql.server};databaseName=${mssql.database};user=${mssql.user};password=${mssql.password}