Hi Michal,
libmariadb.so.2 is MariaDB Connector/C 2.x, while libmariadb.so.3 refers to
MariaDB Connector/C 3.0 (GA will be released together with next MariaDB
10.2 release in July =10.2.7).
Both versions are backwards compatible with libmysql.so.18 - API and ABI
wise, unless applications will abuse internals of MYSQL or MYSQL_STMT
structures instead of using API functions (like mysql->reconnect=1
instead of using mysql_options(mysql, MYSQL_OPT_RECONNECT, &value).
Connector/C versions < 2.2.2 are not 100% ABI compatible, since the plugin
interface differs (MySQL changed the interface without bumping the
interface number years ago).
Compared to libmysql.so.18 libmariadb.so.3 offers additional functions and
features:
Functions:
- mariadb_cancel
- mariadb_connection
- mariadb_get_charset_by_name
- mariadb_stmt_execute_direct
- mariadb_get_charset_by_nr
- mariadb_get_info
- mariadb_get_infov
- mysql_optionsv
Functionality:
- prepare and execute in one step (mariadb_stmt_execute_direct)
- bulk insert for prepared statements (will be supported in 10.2.7)
- TLS/SSL:
- finger print verification of host certificate
- GnuTLS, Schannel (Windows), OpenSSL or LibreSSL support
- Connection plugins (e.g. for replication/failover, tracing, tunelling
etc.).
- Kerberos authentication plugin
Hope this helps!
/Georg
On Wed, Jun 7, 2017 at 4:50 PM, Michal Schorm
Hello,
I'm currently quite confused about the *libmariadb* library.
In MariaDB 10.1.24 there are: " libmysqlclient_r.so -> libmysqlclient.so " " libmysqlclient.so -> libmysqlclient.so.18 " " libmysqlclient.so.18 -> libmysqlclient.so.18.0.0 " " libmysqlclient.so.18.0.0 "
In MariaDB 10.2.6 there are: " libmariadb.so -> libmariadb.so.3 "
In MariaDB-connector-c v2.3.3 there are: " libmysqlclient.so -> libmariadb.so " " libmysqlclient_r.so -> libmariadb.so " " libmariadb.so -> libmariadb.so.2 " " libmariadb.so.2 "
--
1) is "libmariadb.so.2" compatibile with "libmysqlclient.so.18.0.0"? Both API and ABI? 2) is "libmariadb.so.3" compatibile with "libmysqlclient.so.18.0.0"? Both API and ABI? 3) is "libmariadb.so.2" compatibile with "libmariadb.so.3"? Both API and ABI?
Many packages in Fedora depends on "libmysqlclient.so". I would like to pack 10.2 to Fedora, but I can't before all those packages move to the libmariadb library. It would be considerably easier transfer for me, if all those libraries were compatibile, so I could provide symlinks (simmilar as in the connector C), and provide time for all those packages in Fedora to move safely.
--
Michal Schorm Associate Software Engineer Core Services - Databases Team Red Hat
_______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp