【发布时间】:2018-06-19 02:31:42
【问题描述】:
我是 liquibase 的新手,我尝试在我自己的计算机上设置它,运行 Windows 7 和本地 MySQL 服务器。我已经安装了 JDBC 驱动程序 (4.2),在我的防火墙和服务器上打开了 TCP/IP 端口 3306,安装了 liquibase 并将其添加为环境变量中的 PATH。
作为我尝试使用的第一个命令:
C:\Users\Marius>H:\Liquibase\Liquibase \
--driver=com.microsoft.sqlserver.jdbc.SQLServerDriver \
--classpath="C:\\Program Files\\Microsoft JDBC Driver 6.2 for SQL Server\\sqljdbc_6.2\\enu\\mssql-jdbc-6.2.2.jre7.jar" \
--url="jdbc:sqlserver://localhost:3306; databaseName=Test" \
--changeLogFile="H:\Liquibase\dbchangelog.xml" \
--username=liquibase \
--password=liquibase \
Update
但是在执行时我只得到:
运行 Liquibase 时出现意外错误: com.microsoft.sqlserver.jdbc.SQLServerException:TCP/IP 连接 到主机 localhost,端口 3306 失败。错误:“连接 拒绝:连接。验证连接属性。确保一个 SQL Server 实例正在主机上运行并接受 TCP/IP 在端口的连接。确保 TCP 连接到端口 未被防火墙阻止。”。
服务器肯定正在运行,因为我可以使用 telnet、mySQLWorkbench 和其他几个工具连接到它。
使用--url="jdbc:sqlserver:localhost:3306; databaseName=Test" 运行命令时,我得到一个不同的错误代码。
运行 Liquibase 时出现意外错误: liquibase.exception.DatabaseException:无法创建连接 到 jdbc:sqlserver:localhost:3306; databaseName=用驱动测试 com.microsoft.sqlserver.jdbc.SQLServerDriver。可能是错的 给定数据库 URL 的驱动程序
我在另一台使用 SQL Server 2017、不同的 JDBC 驱动程序(6.0 和 6.2)和 Windows 10 作为操作系统的计算机上再次尝试了此操作。 停用防火墙没有任何作用,干净安装也没有任何作用。
感谢任何帮助。
【问题讨论】:
-
检查 SQL Server 是否真的在侦听端口 3306。SQL Server 的默认端口是 1433。此外,防火墙从不阻止与 localhost 的连接。
-
如果您使用的是“本地 MySQL 服务器”,那么您为什么要使用 Microsoft SQL Server 的 JDBC 驱动程序? SQL Server 的 URL 将完全不同(对于初学者来说,SQL Server 通常运行在与 SQL Server 不同的端口上)
-
如果您使用 MySQL(如介绍和使用端口 3306、MySQL Workbench 等所示),请使用 MySQL Connector/J 驱动程序和 MySQL 的正确 URL。如果您实际使用的是 Microsoft SQL Server(如您的标题和最后一段),请为 Microsoft SQL Server 使用正确的端口和 JDBC URL。