sysown/proxysql

proxysql admin module is not compatible with MySQL 8.1.0

sun-rui opened this issue · 1 comments

Use the mysql client of version 8.1.0 to connect to the proxysql admin interface, and any command will fail. for example,

# mysql --version
mysql  Ver 8.1.0 for Linux on x86_64 (MySQL Community Server - GPL)

# mysql -uadmin -padmin -P 6032 -h 127.0.0.1 -e "show variables"
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2014 (HY000) at line 1: Commands out of sync; you can't run this command now

But use the mysql client of version 8.0.x (8.0.26 for instance) is OK. I tried to use the strace tool to capture the differences between the two versions, and found the only difference is that the mysql client of version 8.1.0 issues one more query "select $$" to the server.

According to https://dev.mysql.com/doc/relnotes/mysql/8.1/en/news-8-1-0.html , the use of an unquoted identifier starting with the dollar sign and containing one or more dollar signs in addition to the first one generates a syntax error. The mysql client then added a new detection to check if the server supports dollar quotes, code can be found at https://github.com/mysql/mysql-server/blob/mysql-8.1.0/client/mysql.cc#L1269 .

It seems that proxysql admin modules does not handle this probe correctly?

Current workaround is to use the legacy 8.0.x mysql client.

add more info:
OS: CentOS 7.9