通过bash

时间:2017-04-26 18:57:08

标签: sql-server bash liquibase

我正在尝试通过bash运行Liquibase更新并遇到连接到数据库的问题(“与主机MYCOMPUTERNAME / SQL的TCP / IP连接,端口1433失败了。”)。 我正在使用的命令就是这个 -

java -jar liquibase.jar --username="USERNAME" --password="PASSWORD" --url=$'jdbc:sqlserver://MYCOMPUTERNAME\SQL;databaseName=DBNAME' update

注意:所有大写字母中的值都不是真实值,而是显示我正在尝试做的事情。

我已将问题缩小到连接字符串 - 特别是实例。我正在使用sqljdbc4.jar连接到数据库。我在默认实例上有一个具有相同名称的数据库,当我运行它时它会起作用 -

java -jar liquibase.jar --username="USERNAME" --password="PASSWORD" --url=$'jdbc:sqlserver://MYCOMPUTERNAME;databaseName=DBNAME' update

我还从Windows命令行而不是bash运行上面的第一个,它可以工作(虽然只有双引号或没有引号,而不是单引号)。所有这些似乎都指向我在bash中的语法问题,而不是实际的连接问题。我试过单引号,双引号和转义反斜杠

编辑:我调试了jar,问题是连接字符串的值正在读入 -

jdbc:sqlserver://MYCOMPUTERNAME/SQL;databaseName=DBNAME

当传递给main方法时,反斜杠正在被切换。

编辑:我发现了这个问题。我正在使用Windows Bash,这是试图改变路径。它看起来像是在它发现两个连续的正斜杠时切换后续的反斜杠。我能够继续使用这个命令 -

MSYS_NO_PATHCONV=1 java -jar liquibase.jar --username="USERNAME" --password="PASSWORD" --url=$'jdbc:sqlserver://MYCOMPUTERNAME\SQL;databaseName=DBNAME' update

我在这里找到了这个解决方案 -

How to stop mingw and msys from mangling path names given at the command line?

根本原因全部记录在这里 -

http://www.mingw.org/wiki/Posix_path_conversion

0 个答案:

没有答案