sysown / proxysql

High-performance MySQL proxy with a GPL license.
http://www.proxysql.com
GNU General Public License v3.0
5.95k stars 970 forks source link

Server version reports minimum accessible version, not actual version #4630

Open MarkRS-UK opened 2 weeks ago

MarkRS-UK commented 2 weeks ago

I hope this is a sufficient, and even accurate report, I'm "only" an end user to whom this problem has just arisen.

It seems that when ProxySQL is managing several servers, it doesn't correctly report the version of the database server a user has a connection to, only the lowest version it is supporting.

This has just become an issue in the Joomla community, it was also discovered and discussed by the Drupal community back in 2020. In that discussion it was suggested (I think) that ProxySQL is not correctly updating the "server_version" variable ( https://www.drupal.org/project/drupal/issues/3156078#comment-13744564 ).

My hosting company (ICUK) appears to be in the process of implementing a solution using ProxySQL (I'm guessing), which is why the problem has occurred on my hosted platforms. Because I'm a customer not an insider, I don't know any of their implementation details. I do know that the database server they currently supply me with is actually MySQL 5.7.29-0ubuntu0.16.04.1 byt the mysqlcli call that Joomla makes to instantiate the database connection reports 5.5.30.

Is this a sufficient report? I hope so.

MarkRS-UK commented 2 weeks ago

@jungminjun824 , is this a fix for ProxySQL?

renecannao commented 2 weeks ago

@MarkRS-UK : do not download any file, this seems a possible malware. I will soon reply your request

MarkRS-UK commented 2 weeks ago

Thanks @renecannao , yes, it seemed a little suspect. Thank you for your attention. I'll wait for your reply.

renecannao commented 2 weeks ago

@MarkRS-UK , the issue you are experiencing is well known, it is a configuration issue. Here are some similar issues:

1408

1974

In short, many backend versions can be present behind a single ProxySQL instance, and it can't know to which server the client will connect during handshake, thus ProxySQL will report the version configured in mysql-server_version . To re-iterate: the version that ProxySQL will advertise is configurable!

There is also a possible feature that will allow some sort of auto-configuration under certain scenarios: #4498

4498

MarkRS-UK commented 2 weeks ago

Thanks @renecannao . I suspect (very strongly) that my host at least is implementing this solution so they can allow customers to select the database version they want. Does what you're saying apply in this type of dynamic environment?

Also, sorry to have raised this when it has already been asked. I did look, just didn't find.

Reading #4498 it looks like this situation is not possible...