Forum > Databases

TMySQL56Connection can not work with the installed MySQL client version

(1/4) > >>


I'm trying to use TSQLConnector, and this is the error message I get:

TMySQL56Connection can not work with the installed MySQL client version: Expected (5.6), got (3.3.8).

I am on a current Debian 12, with fpc and lazarus (and mysql, etc) installed with apt. I found this bug report:

It says I should set SkipLibraryVersionCheck to false, but alas, the compiler says that this property doesn't exist. Here's the listing:

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---   Conn := TSQLConnector.Create(nil);   with Conn do begin     SkipLibraryVersionCheck := True;  { Alas, not found. }      ConnectorType := 'mysql 5.6';      HostName := 'localhost/';      DatabaseName := 'vmail';      UserName := 'vmail';      Password := '*********';      Transaction := TSQLTransaction.Create(Conn);   end; 
How can I solve this? Thanks!

for some (unknown by me) reason the TSQLConnector does not have a "SkipLibraryVersionCheck" property.
This property exists only in the database specific connectors like TMySQL56Connection.

If you need more flexibility i recommend ZEOS

The component is simply right to refuse if it is a MySQL 3.3 that is installed and that is very old.. Try the component for MySQL40. But it is usually better to install MariaDb (compatible) since Debian decided to drop direct support for MySQL after Oracle took over and subsequentially tinkered with the original license,,,,,MariaDB can be used as a drop in replacement for higher MySQL versions and is written by the original developers of MySQL. And Debian is not the only major distribution to drop MySQL support....
The reason is one of the most famous FOSS quarrels to date. Most distributions, like Debian, therefor provide a version of MySQL that still adheres to their philosophy regarding open source software.

What makes you think that a component for 56 works with a version 33? I wonder what kind of coffee you had...

Only red hat enterprise and suse enterprise support MySQL officially. So only the enterprise versions of these two. All other nixes are stuck with older distributions or unofficial packages.
IOW Oracle screwed it up and you were sleepingi if you did not know that.

The FOSS quarrel went both ways: Oracle finally reacted and changed the server license even more restricted since October.  If Possible, use MariaDB. It is just as good, faster and API compatible.
And if the versioncheck is unknown, you also have an old Lazarus.

Actually, by now, it is time to rename/clone the components to MariaDB versions and move on.
The MySQL components 56 or higher work perfectly well with MariaDB. It is not 2006-9 anymore.
MariaDB was forked from 3.3...

Ever since they have a rat race with features and compatibility just like FreePascal/Lazarus and Delphi. Although that is mostly amicably.

CharlyTango has given you the answer - use database specific connectors and then set SkipLibraryVersionCheck.

But for completeness - you seem to be running mariadb, not MySQL. mariadb uses MySQL terminology in many places-- for example the connector, configuration files (my.cnf ..), command-line utilities (mysqladmin, mysqlbackup ...) but returns its own version numbers, which are not reflected in the fpc connector code.

Previously discussed in the thread,66948.0.html among others.


[0] Message Index

[#] Next page

Go to full version