Skip to content

Commit

Permalink
nixos mysql: make start-up more robust
Browse files Browse the repository at this point in the history
1) Change start-type to ```notify``` when running MariaDB so that we don't have to busy-wait for the
socket to appear.

2) Do not manually create the directory under /run as we can get systemd to do
that for us. This opens up the possibility later for not having to launch as root.
  • Loading branch information
peterhoeg committed May 24, 2018
1 parent 5da8543 commit 657bd2a
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 11 deletions.
22 changes: 12 additions & 10 deletions nixos/modules/services/databases/mysql.nix
Expand Up @@ -231,8 +231,10 @@ in

environment.systemPackages = [mysql];

systemd.services.mysql =
{ description = "MySQL Server";
systemd.services.mysql = let
hasNotify = (cfg.package == pkgs.mariadb);
in {
description = "MySQL Server";

after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
Expand All @@ -256,17 +258,16 @@ in
mkdir -m 0755 -p ${cfg.pidDir}
chown -R ${cfg.user} ${cfg.pidDir}
# Make the socket directory
mkdir -p /run/mysqld
chmod 0755 /run/mysqld
chown -R ${cfg.user} /run/mysqld
'';

serviceConfig.ExecStart = "${mysql}/bin/mysqld --defaults-extra-file=${myCnf} ${mysqldOptions}";
serviceConfig = {
Type = if hasNotify then "notify" else "simple";
RuntimeDirectory = "mysqld";
ExecStart = "${mysql}/bin/mysqld --defaults-extra-file=${myCnf} ${mysqldOptions}";
};

postStart =
''
postStart = ''
${lib.optionalString (!hasNotify) ''
# Wait until the MySQL server is available for use
count=0
while [ ! -e /run/mysqld/mysqld.sock ]
Expand All @@ -281,6 +282,7 @@ in
count=$((count++))
sleep 1
done
''}
if [ -f /tmp/mysql_init ]
then
Expand Down
1 change: 0 additions & 1 deletion nixos/tests/mysql.nix
Expand Up @@ -19,7 +19,6 @@ import ./make-test.nix ({ pkgs, ...} : {
startAll;
$master->waitForUnit("mysql");
$master->sleep(10); # Hopefully this is long enough!!
$master->succeed("echo 'use testdb; select * from tests' | mysql -u root -N | grep 4");
'';
})

0 comments on commit 657bd2a

Please sign in to comment.