Subject: Re: [bug#49155] [PATCH] gnu: mysql: Support custom data dir.
From: Marius Bakke <[email-masked]>
To: Aljosha Papsch <[email-masked]>, [email-masked]
Cc: Ellen Papsch <[email-masked]>
Date: Sun, 20 Nov 2022 17:56:12 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi!

Thanks for the patch, and sorry for the slooow response...

Aljosha Papsch <[email-masked]> skriver:

> From: Ellen Papsch <[email-masked]>
>
> * gnu/services/databases.scm (mysql-configuration): Add datadir property.
> * gnu/services/databases.scm (mysql-configuration-file): Replace hard coded
> data dir with property from config.
> * gnu/services/databases.scm (%mysql-activation): Remove activation, it runs
> before PID 1. The data dir may reside on a file system not mounted at this
> time.
> * gnu/services/databases.scm (mysql-install-shepherd-service): Create service
> which replaces the activation. Provide mysql-install.
> * gnu/services/databases.scm (mysql-shepherd-service): Move invocation of
> mysqld to mysql-start program-file, because the invocation gotten more
> complex. Require mysql-install.
> * gnu/services/databases.scm (mysql-start): Invoke mysqld only if a lock file
> appears.
> * gnu/services/databases.scm (mysql-shepherd-services): Prepend the install
> service before the normal service.
> * gnu/services/databases.scm (mysql-upgrade-wrapper): Increase timeout to
>   20s to let the mysql install procedure finish.

I have finally applied this patch, along with a follow-up commit to make
the mysql-upgrade service also work with a custom datadir.

I also ended up dropping the 'mysql-install' service in favor of a
mysqld wrapper script that calls the mysql-install script at startup
when the "mysql" DB is missing.

Pushed in c7b266fdf2754c139803c156677bf2828c78d072.