我正在尝试使用maven的flyway,而且我对于flyway有一个看起来像这样的pom:
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>3.1</version>
<inherited>false</inherited>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>migrate</goal>
</goals>
<configuration>
<user>jrm</user>
<password></password>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://localhost/fooDB?createDatabaseIfNotExist=true</url>
<table>version_history</table>
<locations>
<location>
filesystem:../../scripts/entitlement/db/cd
</location>
</locations>
请注意,jrm用户不需要密码,但我对具有非空密码的用户获得了相同的结果。在Windows上,我可以使用MySQL命令行客户端登录数据库。我对这条消息的印象是它表明认证有问题;使用flyway版本4.0.3它说要检查用户,密码和网址。
我相信这可能是Windows特有的问题。请注意,我已将MySQL bin添加到路径环境变量中。我注意到当我尝试使用mysql -u root时,我没有提示输入密码,我只是被拒绝访问,除非我使用mysql -u root -p而且我有理由相信我需要一个用户,因此我的密码为空。
编辑:我正在使用mvn flyway:migrate答案 0 :(得分:0)
wemu给出的答案是完全正确的:当前编写pom时,有必要进行mvn编译而不是flyway:migrate。此外,wemu随后关于移动配置的建议应该可以直接调用Flyway,这可能是正确的做事方式。我想来自Flyway插件的错误消息是完全准确的:它没有看到授权/数据库访问配置,但我不太了解Maven理解为什么并花费大量时间认为信息错误而不仅仅是插件不可用。