-
Notifications
You must be signed in to change notification settings - Fork 71
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
As of MySQL 8.0.34 and 8.1.0 's libmysqlclients deprecates MYSQL_OPT_RECONNECT
#354
Comments
MYSQL_OPT_RECONNECT
MYSQL_OPT_RECONNECT
It's worth noting that setting it to false also emits an error, so DBD::mysql always causes this error as of 8.0.34/8.1.0:
|
Ubuntu rolled out
As a workaround, I was able to downgrade
edit 18-AUG-23: Now that a fix has been released, you can undo the above with:
|
Same issue as of last night! Having to set the crons to devnull, otherwise I'm getting spammed every 1 minute the cron runs :( |
Same here as of today with Ubuntu 20.04. It doesn't make any difference if I use the MariaDB or MySQL packages as they both seem to go through libmysqlclient21 and there isn't a libmariadbclient alternative. |
This bricks some of my nagios checks |
Has been giving me an email from webmin status monitor when it checks if MySQL / Mariadb is up |
I am having the exact same issue. I have been getting flooded with webmin emails. Can anyone give some specifics on how to change this setting? |
You would need to rebuild the perl DBD as mentioned in the first post and remove completely MYSQL_OPT_RECONNECT setup, until then the libmysql will produce this warning even with false setup. Otherwise need to wait for fix and update in your distro. |
Yea, this really looks like an issue in MySQL client library, which basically broke compatibility with existing applications and scripts which lot of people are using. You should report this issue to mysql bug tracker. |
https://bugs.launchpad.net/ubuntu/+source/mysql-8.0/+bug/2031548 This is nuts that they consider "change the runtime output" as appropriate during a minor version/security update. That's never appropriate unless it's something extreme/severe, and even then is questionable. |
I think you would have to fill it into mysql bug tracker: https://bugs.mysql.com/ |
Nice, hundreds of mails today.... hopefully a fix will come soon also from canonical |
A possible hotfix is to supress all errors that are sent to STDERR within the causing perl script.
If something else would cause an error you would not recognise it but it should do it's work until there is a regular update that fixes the behaviour. |
"This is now a verified bug report." … whatever that means in regard to a solution |
Hotfix to suppress STDERR only during connection establishment and still getting reason if connection fails:
|
ubuntu is releasing upgraded version shortly with it's (own?) patch : https://bugs.launchpad.net/ubuntu/+source/mysql-8.0/+bug/2031548 |
After an apt-get update, I can see a new libdbd-mysql-perl on 20.04 and 22.04 now. |
Now fixed for me on 22.04 with newly-released |
Any luck in this landing in main DBD::mysql? Ubuntu makes it very difficult to rollback to 8.0.33 without doing gymnastics. I would love to be able to just do a |
It looks like the last release of DBD::mysql was Jan 2019, last commit in this repo was June 2021, but maybe there wasn't anything this urgent since then. Hopefully @dveeden has a chance to look at it soon. |
The patch in the Ubuntu package looks simple enough but not trivial for most since it's in the C and requires a full rebuild of the package.
|
Yes , Ubuntu released a fix last night. https://bugs.launchpad.net/ubuntu/+source/mysql-8.0/+bug/2031548 Confirmed fixed on 20.04.2 LTS server. |
Same here no more notifications |
We had to patch this as
otherwise it failed to compile properly on MariaDB 5.5. |
Above change is still not enough, as you should not dereference I addressed also these problems in following pull request for DBD-MariaDB: perl5-dbi/DBD-MariaDB#192 |
Great to see a response from you @pali as one of the biggest contributors to DBD::mysql. Do you know who has commit privileges for the repo? |
I think that dveeden is still maintainer of this repo and should have full privileges. |
I do have privileges. However I won't merge any PR's that give the false impression that DBD::mysql is maintained as it is not. So for MySQL 8.1 support you really should not use DBD::mysql. To get DDB::mysql to be supported the Unicode issues etc. need to be fixed and a lot of cleanup would be needed to make the code maintainable. I don't have the resources to do this at this point. I'm not happy about this situation, but this is just how it is now. Side note: I also don't have any plans to continue the work on DBD::mysqlx |
Oh gosh. That's a shame, but also understandable. As a heavy user of DBI/DBD::mysql, does this mean we're likely stuck on MySQL 8.0 forever? Also does this bit of
|
Is there a different library that you would recommend using? Should DBD::MariaDB be seen as the successor?
Since DBD::mysql is widely used, perhaps a call should be put out to find a new maintainer? Perhaps that's something @pali would want to do? |
Yea, DBD::MariaDB is keeping compatibility with both MySQL and MariaDB client libraries and servers. Has most of the DBD-mysql reported bug fixed (including these 80+ from this DBD-mysql issue tracker) and lot of other improvements. But it is not for "legacy" application which depends on specific (lets say buggy) DBD-mysql behavior.
No, few years ago there was already attempt to fix DBD-mysql bugs (UNICODE and security) and it failed because of lot of DBD-mysql applications which depends on buggy behavior. That is why there is DBD-MariaDB. So I think the current state of DBD-mysql is the correct, provides support for existing legacy applications which cannot be upgraded and which should stay to use older MySQL client. Applications which do not depend on fixed mysql behavior can be upgraded to new client and server versions and so also to DBD-MariaDB (and maybe also to other database engines). |
No DBD::MariaDB should not be seen as the successor to DBD::mysql. I'll try to see if I can cleanup DBD::mysql in the next few weeks to have it in a maintainable state again. |
Thanks, @dveeden ! After you do that, would you be looking to hand over the reins to someone else? |
"failed because of lot of DBD-mysql applications which depends on buggy behavior. " This may be a bit off topic, but is there a list or reference of what the 'buggy behaviors being relied on' are? |
Fixed in master |
Thanks a million @dveeden !! Is it deemed safe to use master with all the other fixes and such that have been merged into it? Or is there going to be a new CPAN release at some point? Thanks again! |
@casimirloeber I am planning to release a new CPAN release in the next few weeks. For what I know the master version should be fine, but I want to do more testing before doing a release. |
Thank you very much @dveeden. I am grateful for your efforts and really appreciate your work. |
I am happy to report that I have been running master in production on some very high traffic applications with zero issues. Thanks @dveeden for the great work! |
https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-34.html#mysqld-8-0-34-deprecation-removal
https://dev.mysql.com/doc/relnotes/mysql/8.1/en/news-8-1-0.html#mysqld-8-1-0-deprecation-removal
I seem DBD::mysql is using only one place in
DBD-mysql/dbdimp.c
Lines 2118 to 2121 in 7117e4c
Current status is
deprecated
and it would work several minor updates.But the after the deadline, this method raises would be errored.
(This depends libmysqlclient.so 's version, not Server's version)
The text was updated successfully, but these errors were encountered: