A couple of days ago, we upgraded some MariaDB instances on a consolidated database server. However, after the software update we were not able to manage our instances anymore using mysqld_multi whatever the MariaDB release (10.3.18 or the latest 10.4.x).

Previously, everything worked fine with 10.3.14. So, what happened to our system?

Lets’ quickly start an instance:

[email protected]:/u01/app/mysql/product/mariadb-10.3.18/bin/ [mysqld3] ./mysqld_multi start 3
elseif should be elsif at /u01/app/mysql/product/mariadb-10.3.18/bin/mysqld_multi line 352.
syntax error at /u01/app/mysql/product/mariadb-10.3.18/bin/mysqld_multi line 353, near ")
syntax error at /u01/app/mysql/product/mariadb-10.3.18/bin/mysqld_multi line 356, near "else"
syntax error at /u01/app/mysql/product/mariadb-10.3.18/bin/mysqld_multi line 404, near "}"
Illegal declaration of subroutine main::stop_mysqlds at /u01/app/mysql/product/mariadb-10.3.18/bin/mysqld_multi line 416.

Actually, the error message is quite simple to understand and to fix. We let you check & fix the bug by yourself (hint : “elseif should be elsif”) 😎

That’s it for now but does your MariaDB instances start now? Hum, try it and check your error log like we did:

2019-10-30 20:53:33 0 [Note] InnoDB: 10.3.18 started; log sequence number 1630952; transaction id 21
2019-10-30 20:53:33 0 [Note] InnoDB: Loading buffer pool(s) from /u02/mysqldata/mysqld3/ib_buffer_pool
2019-10-30 20:53:33 0 [Note] Plugin 'FEEDBACK' is disabled.
2019-10-30 20:53:33 0 [ERROR] /u01/app/mysql/product/mariadb-10.3.18/bin/mysqld: unknown variable 'defaults-group-suffix=mysqld3'
2019-10-30 20:53:33 0 [ERROR] Aborting

Still not working ? Hum, now after some further analysis of the perl code especially the perl routine “start_mysqlds” we could identify the real problem.

While, writing this article we found someone already reported that bug MDEV-20728 !  Thanks to him

The fix is directly available on the MariaDB GitHub repository

Good luck 🙂