nixos/mysql: fix service so it works with mysql80 package
This commit is contained in:
parent
0b08c636f2
commit
3474b55614
@ -10,16 +10,8 @@ let
|
|||||||
|
|
||||||
isMariaDB = lib.getName mysql == lib.getName pkgs.mariadb;
|
isMariaDB = lib.getName mysql == lib.getName pkgs.mariadb;
|
||||||
|
|
||||||
isMysqlAtLeast57 =
|
|
||||||
(lib.getName mysql == lib.getName pkgs.mysql57)
|
|
||||||
&& (builtins.compareVersions mysql.version "5.7" >= 0);
|
|
||||||
|
|
||||||
mysqldOptions =
|
mysqldOptions =
|
||||||
"--user=${cfg.user} --datadir=${cfg.dataDir} --basedir=${mysql}";
|
"--user=${cfg.user} --datadir=${cfg.dataDir} --basedir=${mysql}";
|
||||||
# For MySQL 5.7+, --insecure creates the root user without password
|
|
||||||
# (earlier versions and MariaDB do this by default).
|
|
||||||
installOptions =
|
|
||||||
"${mysqldOptions} ${lib.optionalString isMysqlAtLeast57 "--insecure"}";
|
|
||||||
|
|
||||||
settingsFile = pkgs.writeText "my.cnf" (
|
settingsFile = pkgs.writeText "my.cnf" (
|
||||||
generators.toINI { listsAsDuplicateKeys = true; } cfg.settings +
|
generators.toINI { listsAsDuplicateKeys = true; } cfg.settings +
|
||||||
@ -366,9 +358,14 @@ in
|
|||||||
pkgs.nettools
|
pkgs.nettools
|
||||||
];
|
];
|
||||||
|
|
||||||
preStart = ''
|
preStart = if isMariaDB then ''
|
||||||
if ! test -e ${cfg.dataDir}/mysql; then
|
if ! test -e ${cfg.dataDir}/mysql; then
|
||||||
${mysql}/bin/mysql_install_db --defaults-file=/etc/my.cnf ${installOptions}
|
${mysql}/bin/mysql_install_db --defaults-file=/etc/my.cnf ${mysqldOptions}
|
||||||
|
touch /tmp/mysql_init
|
||||||
|
fi
|
||||||
|
'' else ''
|
||||||
|
if ! test -e ${cfg.dataDir}/mysql; then
|
||||||
|
${mysql}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions} --initialize-insecure
|
||||||
touch /tmp/mysql_init
|
touch /tmp/mysql_init
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
Loading…
Reference in New Issue
Block a user