【问题标题】:Mule connecting to SQL Server 2012骡子连接到 SQL Server 2012
【发布时间】:2013-06-11 21:39:14
【问题描述】:

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

我尝试使用 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>

我尝试更改服务器规范,在服务器名称中使用双反斜杠,省略端口号,使用 \而不是反斜杠......它都不起作用。我还尝试了类似“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 连接失败。错误:“连接被拒绝:连接。验证连接属性。确保 SQL Server 实例正在主机上运行并在端口接受 TCP/IP 连接。确保与端口的 TCP 连接未被防火墙阻止。”。

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

【问题讨论】:

    标签: sql-server mule


    【解决方案1】:

    这篇文章真的帮了我大忙:http://java.dzone.com/articles/six-possible-solutions-jdbc-%E2%80%93

    更具体地说是第 3 点

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

    在您的连接中使用此处的值而不是 1433。对我来说是 26625

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 是的,我已经为 SQLExpress 实例完成了这些步骤。
      • 我还移到了另一台机器 (DEFTA01-M4600),以前没有 SQLExpress,因此我进行了全新安装。我在那里启用了 TCP/IP。我在那里创建了一个测试用户(eai_svc)。我测试了我可以使用 SQLCMD 连接到数据库并且它工作正常。进入 Mule 并使用值“jdbc:sqlserver://DEFTA01-M4600\SQLEXPRESS:1433;user=eai_svc;password=eaiteam;”对于数据源上的 url 属性,我得到了同样的失败。
      【解决方案3】:

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

      我对此感到困惑,因为我认为 SQL Server 默认总是在端口 1433 上(全新安装),但这是可行的。

      【讨论】:

        【解决方案4】:

        我遇到了同样的问题,删除了端口,现在我可以建立连接了

        试试这个:

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

        【讨论】:

          猜你喜欢
          • 2014-03-16
          • 2016-03-25
          • 2013-06-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多