summary refs log tree commit diff
path: root/nixos/modules/services/databases/mysql.nix
diff options
context:
space:
mode:
authorLinus Heckemann <git@sphalerite.org>2018-11-19 20:49:08 +0100
committerGitHub <noreply@github.com>2018-11-19 20:49:08 +0100
commit388d36951c502e0f93bd42b5845e92340f44297d (patch)
tree9ea535d79fdb7f2c1b3fb35c3a075f019c7c6af5 /nixos/modules/services/databases/mysql.nix
parent3f3f6021593070330091a4a2bc785f6761bbb3c1 (diff)
parent21e9c35f5f0b3bb48bafe44f69ae6e14670c1633 (diff)
downloadnixpkgs-388d36951c502e0f93bd42b5845e92340f44297d.tar
nixpkgs-388d36951c502e0f93bd42b5845e92340f44297d.tar.gz
nixpkgs-388d36951c502e0f93bd42b5845e92340f44297d.tar.bz2
nixpkgs-388d36951c502e0f93bd42b5845e92340f44297d.tar.lz
nixpkgs-388d36951c502e0f93bd42b5845e92340f44297d.tar.xz
nixpkgs-388d36951c502e0f93bd42b5845e92340f44297d.tar.zst
nixpkgs-388d36951c502e0f93bd42b5845e92340f44297d.zip
Merge pull request #49735 from pvgoran/mysql-support-mysql57
nixos/mysql: support package=mysql57
Diffstat (limited to 'nixos/modules/services/databases/mysql.nix')
-rw-r--r--nixos/modules/services/databases/mysql.nix16
1 files changed, 13 insertions, 3 deletions
diff --git a/nixos/modules/services/databases/mysql.nix b/nixos/modules/services/databases/mysql.nix
index 5f184df34c6..0325c679773 100644
--- a/nixos/modules/services/databases/mysql.nix
+++ b/nixos/modules/services/databases/mysql.nix
@@ -12,12 +12,22 @@ let
     let
       pName = _p: (builtins.parseDrvName (_p.name)).name;
     in pName mysql == pName pkgs.mariadb;
+  isMysqlAtLeast57 =
+    let
+      pName = _p: (builtins.parseDrvName (_p.name)).name;
+    in (pName mysql == pName pkgs.mysql57)
+       && ((builtins.compareVersions mysql.version "5.7") >= 0);
 
   pidFile = "${cfg.pidDir}/mysqld.pid";
 
+  mysqldAndInstallOptions =
+    "--user=${cfg.user} --datadir=${cfg.dataDir} --basedir=${mysql}";
   mysqldOptions =
-    "--user=${cfg.user} --datadir=${cfg.dataDir} --basedir=${mysql} " +
-    "--pid-file=${pidFile}";
+    "${mysqldAndInstallOptions} --pid-file=${pidFile}";
+  # For MySQL 5.7+, --insecure creates the root user without password
+  # (earlier versions and MariaDB do this by default).
+  installOptions =
+    "${mysqldAndInstallOptions} ${lib.optionalString isMysqlAtLeast57 "--insecure"}";
 
   myCnf = pkgs.writeText "my.cnf"
   ''
@@ -253,7 +263,7 @@ in
             if ! test -e ${cfg.dataDir}/mysql; then
                 mkdir -m 0700 -p ${cfg.dataDir}
                 chown -R ${cfg.user} ${cfg.dataDir}
-                ${mysql}/bin/mysql_install_db ${mysqldOptions}
+                ${mysql}/bin/mysql_install_db ${installOptions}
                 touch /tmp/mysql_init
             fi