无法从DataSource获取Jdbc连接 - Flyway

时间:2017-04-08 11:40:00

标签: spring flyway

我有一个MariaDB数据库作为docker容器运行,数据库可用于127.0.0.1:3306,并且没有应用程序在使用给定凭据连接到数据库时出现任何问题。

MySQL Workbench(无问题),DataGrip(无问题),Artisan(无问题),IDEA IDE数据库视图(无问题),手动连接(无问题)。在默认端口上的localhost上没有任何问题可用,并且所有其他应用程序都可以毫无问题地连接到它们。

但是flyway会抛出:

Flyway 4.1.1 by Boxfuse

ERROR:
Unable to obtain Jdbc connection from DataSource (jdbc:mysql://127.0.0.1:3306/local_db_emp) for user 'local_user_emp': Could not connect to 127.0.0.1:3306: unexpected end of stream, read 0 bytes from 4
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SQL State  : 08
Error Code : -1
Message    : Could not connect to 127.0.0.1:3306: unexpected end of stream, read 0 bytes from 4

这就是我运行flyway命令的方式:

flyway \
    -driver=org.mariadb.jdbc.Driver \
    -url=jdbc:mariadb://127.0.0.1:3306/local_db_emp \
    -user=local_user_emp \
    -password=local_pass_emp \
    -locations=filesystem:/src/main/resources/migrations \
    -sqlMigrationPrefix= \
    migrate

我也尝试过:
- 使用localhost代替127.0.0.1
- 使用jdbc:mysql
- 使用MySQL驱动程序
- 尝试使用docker容器名称dev_database而不是127.0.0.1 || localhost

没有使用`flywayz。

,所有地方都没有问题

2 个答案:

答案 0 :(得分:1)

我有一个类似的问题,并意识到在飞路的配置文件夹上犯了一个错误..

确保您的连接数据库名称已被取消注释,然后才能添加本地网址。文档会被评论,因此我忘记取消注释,这会阻止flyway连接我的SQL数据库或识别它。

flyway.url = JDBC:JTDS:SQLSERVER://本地主机 为了使用位置,您必须确保它没有被评论。

参见下面的例子

“#” flyway.user =粉红色

flyway.user = pink

我必须为jdbc连接和密码做同样的事情。

希望这有帮助。

答案 1 :(得分:0)

我也使用PowerShell可能会有所作为。