36 lines
799 B
Nix
36 lines
799 B
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}: {
|
|
services.mysql = {
|
|
enable = true;
|
|
package = pkgs.mysql80;
|
|
user = "toast";
|
|
group = "users";
|
|
};
|
|
|
|
# Don't autostart MySQL
|
|
systemd.services.mysql.wantedBy = lib.mkForce [];
|
|
|
|
# Allow regular users to start/stop mysql
|
|
# https://stackoverflow.com/questions/61480914/using-policykit-to-allow-non-root-users-to-start-and-stop-a-service
|
|
security.polkit.extraConfig = ''
|
|
polkit.addRule(function(action, subject) {
|
|
if (
|
|
action.id == "org.freedesktop.systemd1.manage-units" &&
|
|
action.lookup("unit") == "mysql.service" &&
|
|
subject.user == "${config.services.mysql.user}"
|
|
)
|
|
{
|
|
return polkit.Result.YES;
|
|
}
|
|
})
|
|
'';
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
mysql-workbench
|
|
mycli
|
|
];
|
|
}
|