diff --git a/wix-embedded-mysql/src/main/java/com/wix/mysql/EmbeddedMysql.java b/wix-embedded-mysql/src/main/java/com/wix/mysql/EmbeddedMysql.java index f6bb9ee7..28c5b5ab 100644 --- a/wix-embedded-mysql/src/main/java/com/wix/mysql/EmbeddedMysql.java +++ b/wix-embedded-mysql/src/main/java/com/wix/mysql/EmbeddedMysql.java @@ -46,7 +46,12 @@ protected EmbeddedMysql( try { executable.start(); getClient(SCHEMA, mysqldConfig.getCharset()).executeCommands( - format("CREATE USER '%s'@'%%' IDENTIFIED BY '%s';", mysqldConfig.getUsername(), mysqldConfig.getPassword())); + format("CREATE USER '%s'@'%%' IDENTIFIED BY '%s';", mysqldConfig.getUsername(), mysqldConfig.getPassword()) + ); + if (mysqldConfig.isGrantOption()) { + getClient(SCHEMA, mysqldConfig.getCharset()).executeCommands( + format("GRANT ALL PRIVILEGES ON *.* TO '%s'@'%%' WITH GRANT OPTION", mysqldConfig.getUsername())); + } } catch (IOException e) { throw new RuntimeException(e); } diff --git a/wix-embedded-mysql/src/main/java/com/wix/mysql/config/MysqldConfig.java b/wix-embedded-mysql/src/main/java/com/wix/mysql/config/MysqldConfig.java index 1c18df32..7fa83930 100644 --- a/wix-embedded-mysql/src/main/java/com/wix/mysql/config/MysqldConfig.java +++ b/wix-embedded-mysql/src/main/java/com/wix/mysql/config/MysqldConfig.java @@ -86,6 +86,10 @@ public String getPassword() { return user.password; } + public boolean isGrantOption() { + return user.grant; + } + public TimeZone getTimeZone() { return timeZone; } @@ -148,6 +152,11 @@ public Builder withUser(String username, String password) { return this; } + public Builder withUser(String username, String password, boolean grant) { + this.user = new User(username, password, grant); + return this; + } + public Builder withTimeZone(TimeZone timeZone) { this.timeZone = timeZone; return this; @@ -201,10 +210,18 @@ public MysqldConfig build() { private static class User { private final String name; private final String password; + private final boolean grant; User(String name, String password) { this.name = name; this.password = password; + this.grant = false; + } + + User(String name, String password, boolean grant) { + this.name = name; + this.password = password; + this.grant = grant; } @Override