diff options
-rw-r--r-- | nixos/modules/services/databases/mysql.nix | 3 | ||||
-rw-r--r-- | nixos/tests/mysql-replication.nix | 15 | ||||
-rw-r--r-- | nixos/tests/mysql.nix | 1 |
3 files changed, 9 insertions, 10 deletions
diff --git a/nixos/modules/services/databases/mysql.nix b/nixos/modules/services/databases/mysql.nix index 60c6b22e0595..0b2f99f8fff1 100644 --- a/nixos/modules/services/databases/mysql.nix +++ b/nixos/modules/services/databases/mysql.nix @@ -240,8 +240,9 @@ in # Set up the replication master ( echo "use mysql;" + echo "CREATE USER '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}' IDENTIFIED WITH mysql_native_password;" + echo "SET PASSWORD FOR '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}' = PASSWORD('${cfg.replication.masterPassword}');" echo "GRANT REPLICATION SLAVE ON *.* TO '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}';" - echo "update user set Password=password('${cfg.replication.masterPassword}') where User='${cfg.replication.masterUser}';" ) | ${mysql}/bin/mysql -u root -N ''} diff --git a/nixos/tests/mysql-replication.nix b/nixos/tests/mysql-replication.nix index 0cd8c4484bd7..b20bce8edce6 100644 --- a/nixos/tests/mysql-replication.nix +++ b/nixos/tests/mysql-replication.nix @@ -19,12 +19,10 @@ in services.mysql.enable = true; services.mysql.package = pkgs.mysql; services.mysql.replication.role = "master"; + services.mysql.replication.slaveHost = "%"; + services.mysql.replication.masterUser = replicateUser; + services.mysql.replication.masterPassword = replicatePassword; services.mysql.initialDatabases = [ { name = "testdb"; schema = ./testdb.sql; } ]; - services.mysql.initialScript = pkgs.writeText "initmysql" - '' - create user '${replicateUser}'@'%' identified by '${replicatePassword}'; - grant replication slave on *.* to '${replicateUser}'@'%'; - ''; networking.firewall.allowedTCPPorts = [ 3306 ]; }; @@ -56,10 +54,11 @@ in }; testScript = '' - startAll; - - $master->waitForUnit("mysql"); + $master->start; $master->waitForUnit("mysql"); + $slave1->start; + $slave2->start; + $slave1->waitForUnit("mysql"); $slave2->waitForUnit("mysql"); $slave2->sleep(100); # Hopefully this is long enough!! $slave2->succeed("echo 'use testdb; select * from tests' | mysql -u root -N | grep 4"); diff --git a/nixos/tests/mysql.nix b/nixos/tests/mysql.nix index 588411617776..baaebf9f10db 100644 --- a/nixos/tests/mysql.nix +++ b/nixos/tests/mysql.nix @@ -10,7 +10,6 @@ import ./make-test.nix ({ pkgs, ...} : { { services.mysql.enable = true; - services.mysql.replication.role = "master"; services.mysql.initialDatabases = [ { name = "testdb"; schema = ./testdb.sql; } ]; services.mysql.package = pkgs.mysql; }; |