我有一个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。
,所有地方都没有问题答案 0 :(得分:1)
我有一个类似的问题,并意识到在飞路的配置文件夹上犯了一个错误..
确保您的连接数据库名称已被取消注释,然后才能添加本地网址。文档会被评论,因此我忘记取消注释,这会阻止flyway连接我的SQL数据库或识别它。
flyway.url = JDBC:JTDS:SQLSERVER://本地主机 为了使用位置,您必须确保它没有被评论。
参见下面的例子
“#” flyway.user =粉红色
flyway.user = pink
我必须为jdbc连接和密码做同样的事情。
希望这有帮助。
答案 1 :(得分:0)
我也使用PowerShell可能会有所作为。