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:
mysql@vmoel:/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 🙂