无法连接到SQL服务器数据库

smalunjksmalunjk 成员职位:5贡献我
2018年12月编辑 帮助

嗨,我最近安装工作室,我试图让它连接到本地SQL服务器db。当我添加新连接并单击测试时,它只是挂起。

注意:我已经验证了端口号,我可以telnet localhost 1433,从SSMS连接到db,验证网络参数设置正确,甚至尝试使用localhost, 127.0.0.1,主机名,IP连接,但无济于事。

问:为什么错误指向/etc/hosts(在windows上)?

这是我在日志中得到的例外。

org.h2.jdbc。JdbcSQLException:异常打开端口"H2 TCP Server (TCP://:62419)"(端口可能正在使用中),原因:"timeout;请检查你的网络配置,特别是/etc/hosts文件" [90061-194]
org.h2.message.DbException.getJdbcSQLException (DbException.java: 345)
org.h2.message.DbException.get (DbException.java: 179)
org.h2.tools.Server.start (Server.java: 498)
org.h2.engine.Database.startServer (Database.java: 808)
org.h2.engine.Database.open (Database.java: 664)
org.h2.engine.Database.openDatabase (Database.java: 276)
在org.h2.engine.Database。< init > (Database.java: 270)
org.h2.engine.Engine.openSession (Engine.java: 64)
org.h2.engine.Engine.openSession (Engine.java: 176)
org.h2.engine.Engine.createSessionAndValidate (Engine.java: 154)
org.h2.engine.Engine.createSession (Engine.java: 137)
在org.h2.engine.Engine.createSession (Engine.java: 27)
org.h2.engine.SessionRemote.connectEmbeddedOrServer (SessionRemote.java: 354)
在org.h2.jdbc.JdbcConnection。< init > (JdbcConnection.java: 116)
在org.h2.jdbc.JdbcConnection。< init > (JdbcConnection.java: 100)
org.h2.Driver.connect (Driver.java: 69)
java.sql.DriverManager.getConnection (DriverManager.java: 664)
java.sql.DriverManager.getConnection (DriverManager.java: 270)
com.rapidminer.tools.usagestats.CtaDataSource.getConnection (CtaDataSource.java: 101)
在com.rapidminer.tools.usagestats.CtaDao。< init > (CtaDao.java: 75)
在com.rapidminer.tools.usagestats.CtaDao。< clinit > (CtaDao.java: 45)
com.rapidminer.tools.usagestats.CallToActionScheduler.persistEvents (CallToActionScheduler.java: 158)
com.rapidminer.tools.usagestats.CallToActionScheduler.access 100美元(CallToActionScheduler.java: 48)
在com.rapidminer.tools.usagestats.CallToActionScheduler 1.美元运行(CallToActionScheduler.java: 96)
java.util.concurrent.Executors RunnableAdapter.call美元(Executors.java: 511)
java.util.concurrent.FutureTask.runAndReset (FutureTask.java: 308)
在java.util.concurrent.ScheduledThreadPoolExecutor ScheduledFutureTask.access 301美元(ScheduledThreadPoolExecutor.java: 180)
java.util.concurrent.ScheduledThreadPoolExecutor ScheduledFutureTask.run美元(ScheduledThreadPoolExecutor.java: 294)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java: 1142)
java.util.concurrent.ThreadPoolExecutor Worker.run美元(ThreadPoolExecutor.java: 617)
java.lang.Thread.run (Thread.java: 745)

答案

  • BalazsBaranyBalazsBarany 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家职位:913独角兽

    你好,

    你指的是SQL Server和端口1433。你用的是Microsoft SQL Server,对吗?

    这些错误来自H2 SQL引擎,这是一个用Java编写的开源嵌入式数据库。

    所以请先选择正确的数据库类型。

    问候,

    Balazs

  • M_MartinM_Martin RapidMiner注册分析师、会员职位:125独角兽

    早上好:

    使用SQL Server的通用JDBC驱动程序或微软自己的JDBC驱动程序连接到SQL Server应该不是问题。我附上了两个屏幕截图,显示了我经常使用的一个SQL Server连接的参数。

    文件“MS_SQL_Connection_Parameters_Nr_1.png”是可以用作模型的基本连接对话框。注意连接URL。

    文件MS_SQL_Connection_Parameters_Nr_2.png是您在第一个对话框中单击“Advanced”按钮所看到的—其中包含在某些时候可能应用的其他有用选项。

    希望这能有所帮助,并致以最良好的祝愿,迈克尔·马丁

  • smalunjksmalunjk 成员职位:5贡献我

    早上好,

    我已经按照你在屏幕截图中显示的方式配置了它。还是不行。正如我在我的原始帖子中所说,我使用localhost, 127.0.0.1,主机名,ip地址,带/不带模式名称,但没有运气。

    有线索吗?

  • M_MartinM_Martin RapidMiner注册分析师、会员职位:125独角兽

    很遗憾听到这个问题仍然存在。

    我从来没有使用过IP (http)地址(即127.0.0.1)来引用连接对话框中的SQL Server实例名-我一直使用localhost作为实例名。在您的环境中,SQL Server和rapidMiner Studio在同一台机器上吗?

    什么也工作(我刚刚测试了它)是使用机器名称作为SQL Server实例名称。你可以在Windows的控制面板->系统->高级系统设置下看到你当前的机器名。将出现一个选项卡对话框,显示当前的完整机器名称(假设是Windows)。

    在配置过程结束时,我认为你想要一个连接到SQL Server的URL,看起来像:

    jdbc:sqlserver//:1433;databaseName=

    您还可以使用SQL Server配置管理器检查您的SQL Server网络配置设置,因为可能不知何故,1433不是您的SQL Server实例运行的端口。检查TCP / IP协议的属性可以显示SQL Server运行在哪个端口上。在我的机器上,除了VIA之外,所有的网络协议都是启用的。

    还要仔细检查,以确保您的SQL Server实例当前允许远程连接。您可以在“连接”页面上的SQL Server实例名称的属性对话框中检查这一点。有一个选项显示“允许远程连接到此服务器”。确保它已打勾。

    根据我的经验,如果您在机器上安装SQL Server时接受默认的SQL Server实例名称,那么您的实例名称将是localhost。

    同样,我从未使用IP地址来引用SQL Server实例-无论是localhost的聋哑实例名称还是机器名称-两者都适用于我的RapidMiner。

    我希望以上是有帮助的-让我知道事情的进展。

    迈克尔

  • smalunjksmalunjk 成员职位:5贡献我

    是的,数据库和工作室在同一个windows服务器上。我已经启用了协议,验证了端口(1433),并确保选中了“允许远程连接”。

    还有其他线索吗?

  • M_MartinM_Martin RapidMiner注册分析师、会员职位:125独角兽

    OK -你可以尝试连接到SQL Server使用您的机器名称(而不是本地主机)作为SQL Server实例名称?(并确认连接字符串中没有IP地址。)

    出于兴趣:您是否使用其他客户端程序或BI模型软件工具连接到此SQL Server实例;(Tableau, QlikView, Omniscope,或通过。net编程(即OLEDB)等)?

    您是否有最新版本的MS SQL Server jdbc驱动程序?是否设置了PATH命令以包含MS SQL Server驱动程序所在的目录?

    如果这失败了,你能在回复中发布实际连接URL吗?我可以在我的系统上代理你的连接字符串,方法是在我的机器上创建一个SQL Server数据库,其中一个表与你想要连接到你的机器上的数据库相匹配。

    请告诉我并致以最良好的祝愿,迈克尔

  • smalunjksmalunjk 成员职位:5贡献我

    我可以登录到使用SQL服务器管理工作室的模式。我没有任何其他客户端在服务器上,我可以尝试。我也尝试连接到远程oracle数据库和相同的错误。我能够连接到远程oracle数据库使用SSIS从这个盒子,但不是从RMS。

    请原谅我的无知,但我没有意识到我需要设置JDBC驱动程序,路径等。我想我知道如何从使用工作室GUI添加驱动程序,但不知道如何设置路径。你能发送说明吗?我应该添加什么JDBC驱动程序?开箱即用的驱动程序还不够吗?

    我试过使用完整的机器名。还是没有运气。你能直接给我发邮件索要我的系统/ url的截图吗?

  • smalunjksmalunjk 成员职位:5贡献我

    我能够在同一台机器上使用来自SSIS的同一用户进行连接。所以,用户设置对我来说似乎是正确的。

  • M_MartinM_Martin RapidMiner注册分析师、会员职位:125独角兽

    你好:

    我附上三个。png文件:

    Manage_Database_Drivers_ (Connections_Menu) . png

    MS_JDBC_Driver_Setup_Dialog.png

    Databse_Configuration_Parameters.png

    在RM“连接”菜单中,有一个名为“管理数据库驱动程序”的选项。上面列表中的第一个截图向您展示了我系统上的驱动程序。在系统上打开相同的对话框,查看是否安装了“Microsoft SQL Server (Microsoft)”驱动程序。从您所写的内容来看,听起来SQL Server的Microsoft jdbc驱动程序不在您的系统上。

    用于SQL Server的MS JDBC驱动程序的下载URL为:

    https://www.microsoft.com/en-ca/download/details.aspx?id=11774

    本页上的说明解释了如何在系统上设置驱动程序。我错误地认为必须修改PATH环境变量,我一定是把jdbc驱动程序与我使用的另一个实用程序混淆了。

    在从Microsoft安装JDBC驱动程序之后,需要配置RM Studio以使用该驱动程序。看一下第二个.png文件。该文件显示了设置参数。设置驱动程序包括浏览到您在系统上安装jdbc驱动程序的文件夹。一旦选择了包含驱动程序的jar文件(sqljdbc.jar—或者sqljdbc-4.1.jar),“驱动程序类”的值将出现在设置对话框中。您可以从第二个屏幕截图中将其余字段的信息复制到您的设置对话框中——在这个对话框中,我在我的系统上设置了SQL Server jdbc驱动程序的第二个实例。

    设置好驱动程序后,保存更改,退出RapidMiner Studio,然后再次打开它-然后尝试配置到SQL Server实例的连接-上面引用的第三个屏幕截图显示了我的系统中的一个示例配置对话框。

    让我知道事情进展如何——祝你好运!

    最好的祝愿,

    迈克尔•马丁

  • M_MartinM_Martin RapidMiner注册分析师、会员职位:125独角兽

    smalunjk

    现在可以连接到SQL Server数据库了吗?

  • darreldarrel 成员职位:1新手

    我也面临着类似的问题,我已经更新了我的防火墙来改变传入规则。我可以通过SSMS连接到我的数据库,但不能通过快速矿工工作室。我更新了SQL Server的JDBC驱动程序。

  • reaiityreaiity 成员职位:1贡献我

    我也遇到过同样的问题。

    对我来说,这是因为代理设置了这样一个愚蠢的错误。

    但是这种程序真的需要尊重系统代理吗?至少让我们在连接创建屏幕中指定它们

    我只是禁用代理在互联网选项和pow!现在是工作

登录注册置评。