]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/databases/mariadb_replication.nix
Use minute precision for backups
[perso/Immae/Config/Nix.git] / modules / private / databases / mariadb_replication.nix
index 23648bb980e4dc5368a691f2bde2bade658e3179..740bdac44b3be7bdb341a31829bb14350a62e75c 100644 (file)
@@ -114,6 +114,17 @@ in
           password = ${hcfg.dumpPassword}
         '';
       }
+      {
+        dest = "mysql_replication/${name}/client";
+        permissions = "0400";
+        user = "mysql";
+        group = "mysql";
+        text = ''
+          [client]
+          user = ${hcfg.dumpUser}
+          password = ${hcfg.dumpPassword}
+        '';
+      }
     ]) cfg.hosts);
 
     services.cron = {
@@ -133,10 +144,10 @@ in
                 --gtid \
                 --master-data \
                 --flush-privileges \
-                --all-databases > ${backupDir}/$(${pkgs.coreutils}/bin/date -Iseconds).sql
+                --all-databases > ${backupDir}/$(${pkgs.coreutils}/bin/date -Iminutes).sql
             '';
           u = pkgs.callPackage ./utils.nix {};
-          cleanup_script = pkgs.writeScript "cleanup_mysql_${name}" (u.exponentialDumps backupDir);
+          cleanup_script = pkgs.writeScript "cleanup_mysql_${name}" (u.exponentialDumps "sql" backupDir);
         in [
           "0 22,4,10,16 * * * root ${backup_script}"
           "0 3 * * * root ${cleanup_script}"
@@ -156,6 +167,7 @@ in
       lib.attrsets.nameValuePair "mysql/${name}_my.cnf" {
         text = ''
           [mysqld]
+          skip-networking
           socket = /run/mysqld_${name}/mysqld.sock
           datadir = ${cfg.base}/${name}/mysql/
           log-bin = mariadb-bin