On 05/17/2013 12:29 PM, Reindl Harald wrote:
> Am 17.05.2013 12:05, schrieb Sebastien FLAESCH:
>> Beside the Oracle skills debate and the stupid mistakes with soname
>> changes between 5.5.8 and 5.5.10 or 5.6.x, (imagine all of this did
>> not happen):
>> I have a VERY simple question that needs a VERY CLEAR answer:
>> In our distribution packages (for different platforms! not only Linux),
>> I need to provide mysql client binaries for different versions of mysql
>> client environments:
>> How many binaries do I have to provide to support all these versions?
>> We compile with headers of a given version and link dynamically with
>> -lmysqlclient of course
> 4.1 and 5.6 should be enough if the topic is only
> to connect to servers from 4.1 to 5.6, a 5.6 client
> will happily connct to a>= 5.1 server
> 4.1 has a older protocol version and is AFAIk not supported
> by recent client libraries, at least recent PHP versions can
> not connect to servers older than 5.x
I see want you mean regarding C/S protocols but understand that:
1- we do not ship the MySQL client library,
2- it's not sure that a 5.6 (or 4.1) libmysqlclient is installed.
Typically, customers will install a MySQL 5.x.y server WITH the
corresponding 5.x.y MySQL client library (usually on the same
machine), then they install our software (it's a dev tool).
So you can have following scenario:
A- MySQL Version 5.4.x with:
B- Our product, with a db interface module for MySQL.
If we use MySQL 5.6.x to build it, it will be linked to:
I suppose linking our modules to libmysqlclient.so without a lib
version name is not good practice... ;-)
Until today, if we want to have a common and simple rule for all
plaforms, my instinct is that we better provide a binary compiled
and linked with each major version of the MySQL we want to support.
This implies MySQL version specific modules in our package, but
guaranties 100% compatibility with the different MySQL client libs
that can be in the field.
Am I wrong?