-
Notifications
You must be signed in to change notification settings - Fork 75
The mentioning of MariaDB in the documentation #468
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
When compiling DBD::mysql it requires MySQL v8.0 or newer (except for v4.x versions of DBD::mysql). Building against MariaDB isn't supported and doesn't work as the C API of MySQL and MariaDB have diverted. But once DBD::mysql is build it should be able to connect to MariaDB and function. The same is true for connecting with DBD::mysql to TiDB or anything else that supports the MySQL protocol and syntax. Limitations here are that very old versions of MySQL (and MariaDB) might not work. (e.g. MySQL 3.23.x, 4.0, etc). I would expect the v10 protocol and |
@dveeden Ok, thank you for the answer. I understand it. I am proposing to add this information to the documentation because this is not clean. Is this ok for you? I would prepare doc change. What about the On my system, connecting to MariaDB.
DBD::MariaDB:
There are three possibilities:
What about it? |
I think there is another possibility: It's a mix. The DBD-mysql/lib/DBD/mysql/GetInfo.pm Line 159 in 045fd5f
For Take these version strings:
Two of them are clear MySQL versions (9.2.0 and 8.0.36). The second one is a development build of TiDB v9.0.0 that announces itself as MySQL 8.0.11. The last one is MariaDB 10.11.11 announcing itself as MySQL 5.5.5. Here both TiDB and MariaDB have their own version but also have a MySQL version. Then there is And then I would say that to find out if one is using MariaDB, TiDB or any other server one needs to check the We could add something like And then there is the case that one uses a proxy that may or may not return the expected version string in the handshake. This would result in different versions in the server greeting packet and in the output of For example ProxySQL (Available in Fedora 42, probably also Fedora 41) identifies itself as 5.5.30, but have MariaDB, MySQL, etc as backend servers. I don't think DBD::mysql tests show |
There is no mention of SQL_DRIVER_NAME in tests of DBD::mysql. That's true. Thank you. |
@michal-josef-spacek Could you check #470 and #469 ? |
@michal-josef-spacek I just merged #471 to add CI testing with MariaDB. It would be good if we could spend some time on |
@dveeden Great, thank you for the commits and release. I need some time to check it. |
@dveeden About
What do you think? |
Examples:
mysql command (from MariaDB) to proxysql with mysql as a backend:
mysql command (from MariaDB) to MariaDB database:
|
I think it would be good to change I think it would make sense to also consider I guess that for Percona Server, we should just return
Maybe we should truncate everything after |
Yes, I like it. |
I don't know. |
Hi, I would like to discuss information about MariaDB in DBD::mysql documentation.
My intention with this is to understand what we support and what is buggy or missing.
There are some facts:
$dbh->{mysql_serverversion} > 100000
condition, which is a bit tricky (The version of MySQL could be greater than 100000 in the future).$dbh->get_info($GetInfoType{SQL_DBMS_NAME})
isMySQL
with version$dbh->{mysql_serverversion}
is50505
(With DBD::MariaDB and same libmysqlclient.so.21 library I have "MariaDB" and "101111").My questions:
My proposals:
The text was updated successfully, but these errors were encountered: