services: mysql: Add port to configuration
authorChristopher Baines <mail@cbaines.net>
Sun, 11 Dec 2016 21:17:40 +0000 (21:17 +0000)
committerLudovic Courtès <ludo@gnu.org>
Tue, 13 Dec 2016 23:22:49 +0000 (00:22 +0100)
* gnu/services/databases.scm (<mysql-configuration>): Add port field.
(mysql-configuration-file): Use the port field when creating the
configuration file.
* doc/guix.texi (Database Services): Document it.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
doc/guix.texi
gnu/services/databases.scm

index 0cb1bc7..f1c5963 100644 (file)
@@ -10177,6 +10177,9 @@ or @var{mysql}.
 
 For MySQL, a temporary root password will be displayed at activation time.
 For MariaDB, the root password is empty.
+
+@item @code{port} (default: @code{3306})
+TCP port on which the database server listens for incoming connections.
 @end table
 @end deftp
 
index 1eed855..f7e08e6 100644 (file)
@@ -160,7 +160,8 @@ and stores the database cluster in @var{data-directory}."
 (define-record-type* <mysql-configuration>
   mysql-configuration make-mysql-configuration
   mysql-configuration?
-  (mysql mysql-configuration-mysql (default mariadb)))
+  (mysql mysql-configuration-mysql (default mariadb))
+  (port mysql-configuration-port (default 3306)))
 
 (define %mysql-accounts
   (list (user-group
@@ -175,10 +176,11 @@ and stores the database cluster in @var{data-directory}."
 
 (define mysql-configuration-file
   (match-lambda
-    (($ <mysql-configuration> mysql)
-     (plain-file "my.cnf" "[mysqld]
+    (($ <mysql-configuration> mysql port)
+     (mixed-text-file "my.cnf" "[mysqld]
 datadir=/var/lib/mysql
 socket=/run/mysqld/mysqld.sock
+port=" (number->string port) "
 "))))
 
 (define (%mysql-activation config)