Hi,
At the moment, I’m trying to replace MySQL by MariaDB on my Kamailio server (5.0.1) . In previous post I have been told that Kamailio supports MariaDB and there is no special module to load.
This work is done on a new server running RHEL 7.4 and MariaDB 10.2.14 that is installed under /opt/mysql/na/10.2.14 folder.
I encounter different problem:
- Without changing anything in the kamailio script, kamailio failed to find the libmysqlclient.so.18 library.
- So I thought that I could get rid of the above error by changing the MODULEPATH in the Kamailio-local.cfg as follows :
MODULEPATH="/usr/lib64/kamailio/modules/:/opt/mysql/na/10.2.14/lib64/"
But with this, I get 2 problem:
The kamailio.log that was written in a /opt/log/Kamailio folder is no longer updated.
I can only find the errors in the /var/log/messages file:
May 23 11:19:19 vm-siprouter74 systemd: Starting SYSV: Kamailio is a fast, reliable and flexible SIP Server....
May 23 11:19:19 vm-siprouter74 kamailio: Not starting : invalid configuration file!
May 23 11:19:19 vm-siprouter74 kamailio: 0(3328) DEBUG: <core> [core/cfg.lex:1822]: pp_define_get(): ### returning define ID [DEFINE_LOG_FACILITY] value [LOG_LOCAL0]
May 23 11:19:19 vm-siprouter74 kamailio: 0(3328) DEBUG: <core> [core/cfg.lex:1822]: pp_define_get(): ### returning define ID [LOCAL_LISTEN] value [udp:129.227.82.109:5060]
May 23 11:19:19 vm-siprouter74 kamailio: 0(3328) DEBUG: <core> [core/cfg.lex:1822]: pp_define_get(): ### returning define ID [LOCAL_LISTEN_2] value [udp:127.0.0.1:5060]
May 23 11:19:19 vm-siprouter74 kamailio: 0(3328) DEBUG: <core> [core/cfg.lex:1822]: pp_define_get(): ### returning define ID [MODULEPATH] value ["/usr/lib64/kamailio/modules/:/opt/mysql/na/10.2.14/lib64/"]
May 23 11:19:19 vm-siprouter74 kamailio: 0(3328) DEBUG: <core> [core/cfg.y:1632]: yyparse(): loading modules under /usr/lib64/kamailio/modules/:/opt/mysql/na/10.2.14/lib64/
May 23 11:19:19 vm-siprouter74 kamailio: 0(3328) DEBUG: <core> [core/cfg.y:1613]: yyparse(): loading module db_mysql.so
May 23 11:19:19 vm-siprouter74 kamailio: 0(3328) DEBUG: <core> [core/sr_module.c:575]: load_module(): trying to load </usr/lib64/kamailio/modules/db_mysql.so>
May 23 11:19:19 vm-siprouter74 kamailio: 0(3328) ERROR: <core> [core/sr_module.c:582]: load_module(): could not open module </usr/lib64/kamailio/modules/db_mysql.so>: libmysqlclient.so.18: cannot open shared object file: No such file or directory
May 23 11:19:19 vm-siprouter74 kamailio: 0(3328) CRITICAL: <core> [core/cfg.y:3401]: yyerror_at(): parse error in config file //etc/kamailio/kamailio.cfg, line 191, column 12-24: failed to load module
May 23 11:19:19 vm-siprouter74 kamailio: 0(3328) DEBUG: <core> [core/cfg.y:1613]: yyparse(): loading module jsonrpcs.so
May 23 11:19:19 vm-siprouter74 kamailio: 0(3328) DEBUG: <core> [core/sr_module.c:575]: load_module(): trying to load </usr/lib64/kamailio/modules/jsonrpcs.so>
To work around the problem we have created 2 symbol links:
<<< ln -s /opt/mysql/na/10.2.14/lib64/libmysqlclient.so.18.0.0 /usr/lib64/libmysqlclient.so.18 >>> the libmysqlclient error
<<< ln -s /myqdata/mysiprdb/data/my.cnf /etc/my.cnf >>> to fix the issue to open the db
It seems that kamailio is always looking for the my.cnf in the /etc/ directory.
My concern are to share this job with people who have much more experience with Kamailio.
I would like to know
- If the different workaround (ln) makes sense to you or is there better change to do
- How to explain the logging issue when changing the modulepath variable
- Is it true that kamailio is always looking for the my.cnf in the /etc/ directory?
Any thoughts are welcome.
Thanks in advance.
Cordialement.
Patrick GINHOUX