Le 28/01/2026 à 2:20 AM, Hyeonggeun Oh a écrit :
Hello HAProxy Team,This patch adds MySQL 8.x compatibility to the mysql-check health check option. Problem: MySQL 8.0 changed the default authentication plugin from mysql_native_password to caching_sha2_password. The existing post-41 option lacks CLIENT_PLUGIN_AUTH capability, causing MySQL 8.x servers to reject health check connections with error 1251. Solution: A new 'post-80' option that includes CLIENT_PLUGIN_AUTH capability and explicitly requests mysql_native_password authentication. Testing: Built and tested on Linux (Debian bookworm) Verified with MySQL 8.0.44 in Docker environment Regression test with custom test configuration like below. (in reg-tests/checks/mysql-check.vtc) ```vtc # MySQL 8.0 server responding to post-80 client (with CLIENT_PLUGIN_AUTH) server s6 { sendhex "4A0000000A382E302E3139000A0000006F3C025E6249410D00FFFFFF0200FFC715000000000000000000007C182159106E2761144322200063616368696E675F736861325F70617373776F726400" recv 69 sendhex "0700000200000002000000" } -start ``` Limitation: The health check user must still use mysql_native_password authentication. This is a MySQL server-side requirement, not a HAProxy limitation. This addresses GitHub issue https://github.com/haproxy/haproxy/issues/2934. Please review my patch and leave comments. Sincerely, Hyeonggeun. Hyeonggeun Oh (2): MEDIUM: tcpcheck: add post-80 option for mysql-check to support MySQL 8.x DOC: add post-80 option for mysql-check to support MySQL 8.x doc/configuration.txt | 8 +++++++- src/tcpcheck.c | 37 ++++++++++++++++++++++++++++++++++++- 2 files changed, 43 insertions(+), 2 deletions(-)
Thanks, I will review it ASAP. -- Christopher Faulet

