如何使用Liquibase创建数据库

day*_*mer 4 java mysql liquibase maven

  • 我试图用来Liquibase创建存在的数据库.
  • 我已下载MySQL并未对其进行任何更改

  • 我的maven插件代码看起来像

    <plugins>
        <plugin>
            <groupId>org.liquibase</groupId>
            <artifactId>liquibase-maven-plugin</artifactId>
            <version>3.1.1</version>
            <configuration>
                <changeLogFile>src/main/resources/changelog.xml</changeLogFile>
                <driver>com.mysql.jdbc.Driver</driver>
                <url>jdbc:mysql://localhost:3306/myApp?createDatabaseIfNotExist=true</url>
            </configuration>
            <executions>
                <execution>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>update</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
    
    Run Code Online (Sandbox Code Playgroud)

当我跑步时mvn clean install,我看到错误

Failed to execute goal org.liquibase:liquibase-maven-plugin:3.1.1:update (default) on project database_seed: Error setting up or running Liquibase: liquibase.exception.DatabaseException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user ''@'localhost' to database 'myApp' -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

我如何解决它?

mat*_*att 8

看起来您没有在配置中传递用户名或密码:

(来自liquibase maven文档)

<configuration>
  <changeLogFile>src/main/resources/changelog.xml</changeLogFile>
  <driver>com.mysql.jdbc.Driver</driver>
  <url>jdbc:mysql://localhost:3306/myApp?createDatabaseIfNotExist=true</url>
  <username>liquibaseTest</username>
  <password>pass</password>
</configuration>
Run Code Online (Sandbox Code Playgroud)

  • 如果您在 spring-boot 中使用 application.properties 进行配置,请使用以下键值对: `spring.datasource.url= jdbc:mysql://localhost:11030/myAppcreateDatabaseIfNotExist=true` `spring.datasource.username =liquibaseTest``spring.datasource.password=pass` (2认同)