Cambios en Jessie
Más información
Esto significa que el método para arrancar el cluster de galera mariadb según la documentación se debe iniciar de la siguiente forma:
# service mysql start --wsrep-new-cluster
Para sistemas systemd:
# systemctl start mysql --wsrep-new-cluster
El problema es que no arrancará con uno ni con el otro, debido a que el nuevo systemd no permite parámetros y el service no manda a cargar /etc/init.d/mysql, por lo tanto la forma rústica e incorrecta es configurar en my.cnf:
wsrep_cluster_address = "gcomm://"
Arrancar el servidor y luego modificar nuevamente el my.cnf:
wsrep_cluster_address = "gcomm://ip1,ip2,ip3"
Pero esta no es la forma correcta.
La forma correcta es indicar por parámetros la primera vez lo deseado "--wresp-new-cluster" y dejando el wsrep_cluster_address con todos los integrantes.
Lo primero que vamos a hacer es ejecutar el siguiente comando:
# systemctl cat mysql.service
Lo que nos devolverá la siguiente salida:
# /run/systemd/generator.late/mysql.serviceCreamos el siguiente archivo que no existe "/etc/systemd/system/mysql.service" agregando el parámetro que deseamos:
# Automatically generated by systemd-sysv-generator
[Unit]
SourcePath=/etc/init.d/mysql
Description=LSB: Start and stop the mysql database server daemon
Before=runlevel2.target runlevel3.target runlevel4.target runlevel5.target shutdown.target
After=remote-fs.target systemd-journald-dev-log.socket network-online.target nss-lookup.target time-sync.target
Wants=network-online.target
Conflicts=shutdown.target
[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
SysVStartPriority=2
ExecStart=/etc/init.d/mysql start
ExecStop=/etc/init.d/mysql stop
ExecReload=/etc/init.d/mysql reload
[Unit]
SourcePath=/etc/init.d/mysql
Description=LSB: Start and stop the mysql database server daemon
Before=runlevel2.target runlevel3.target runlevel4.target runlevel5.target shutdown.target
After=remote-fs.target systemd-journald-dev-log.socket network-online.target nss-lookup.target time-sync.target
Wants=network-online.target
Conflicts=shutdown.target
[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
SysVStartPriority=2
ExecStart=/etc/init.d/mysql start --wsrep_new_cluster
#ExecStart=/etc/init.d/mysql start
ExecStop=/etc/init.d/mysql stop
ExecReload=/etc/init.d/mysql reload
Listo, cuando ejecutemos por primera vez pasará por parámetro que debe iniciar el primer miembro del cluster, basta entrer y solo hacer un cambio en los comentarios, si se cae este servidor solo basta hacer un "service mysql restart" y cargará con el gcomm://ip1,ip2,ip3.
Es más sólido modificar solo el parámetro de entrada que tocar el archivo de configuración.