Привилегия SUPER и бинарная регистрация - PullRequest
0 голосов
/ 26 июня 2019

Я переопределяю Mysql testcontainer

public class TestMySQLContainer extends MySQLContainer {

  public TestMySQLContainer(String dockerImageName) {
    super(dockerImageName);
    withCommand("--default-authentication-plugin=mysql_native_password");
//    withCommand("--log-bin-trust-routine-creators");
  }

  @Override
  public String getDriverClassName() {
    return "com.mysql.cj.jdbc.Driver";
  }
}

Используйте Mysql 8.0.14 И у меня есть такой скрипт

drop trigger if exists environments_insert;

delimiter //
create trigger environments_insert
  before insert
  on console.environments
  for each row
begin
  if new.version_update_date is null then
    set new.version_update_date = new.created;
  end if;
end //
delimiter ;

Он отлично работает с flyway

Но когда я пытаюсь запуститьэто с MysqlContainer у меня ошибка

Statement  : create trigger environments_insert
  before insert
  on console.environments
  for each row
begin
  if new.version_update_date is null then
    set new.version_update_date = new.created;
  end if;
end 

    at org.flywaydb.core.internal.sqlscript.DefaultSqlScriptExecutor.handleException(DefaultSqlScriptExecutor.java:268)
    at org.flywaydb.core.internal.sqlscript.DefaultSqlScriptExecutor.executeStatement(DefaultSqlScriptExecutor.java:215)
    at org.flywaydb.core.internal.sqlscript.DefaultSqlScriptExecutor.execute(DefaultSqlScriptExecutor.java:122)
    at org.flywaydb.core.internal.resolver.sql.SqlMigrationExecutor.execute(SqlMigrationExecutor.java:77)
    at org.flywaydb.core.internal.command.DbMigrate.doMigrateGroup(DbMigrate.java:367)
    ... 32 more
Caused by: java.sql.SQLException: You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

Как я могу решить эту проблему?

...