Module: monitoring-plugins
 Branch: master
 Commit: 10863265324a9a9fdf8ce771271af15b7e2f5a4a
 Author: Platon Pronko <platon7pro...@gmail.com>
   Date: Fri May 19 15:05:02 2023 +0800
    URL: 
https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=1086326

check_mysql: handle ER_ACCESS_DENIED_NO_PASSWORD_ERROR if ignore_auth=1

In some situations MySQL might return ER_ACCESS_DENIED_NO_PASSWORD_ERROR
instead of ER_ACCESS_DENIED_ERROR. Semantically these errors are the same.

---

 plugins/check_mysql.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/plugins/check_mysql.c b/plugins/check_mysql.c
index 6cfa70e..91e150f 100644
--- a/plugins/check_mysql.c
+++ b/plugins/check_mysql.c
@@ -138,7 +138,10 @@ main (int argc, char **argv)
                mysql_ssl_set(&mysql,key,cert,ca_cert,ca_dir,ciphers);
        /* establish a connection to the server and error checking */
        if 
(!mysql_real_connect(&mysql,db_host,db_user,db_pass,db,db_port,db_socket,0)) {
-               if (ignore_auth && mysql_errno (&mysql) == 
ER_ACCESS_DENIED_ERROR)
+               /* Depending on internally-selected auth plugin MySQL might 
return */
+               /* ER_ACCESS_DENIED_NO_PASSWORD_ERROR or 
ER_ACCESS_DENIED_ERROR. */
+               /* Semantically these errors are the same. */
+               if (ignore_auth && (mysql_errno (&mysql) == 
ER_ACCESS_DENIED_ERROR || mysql_errno (&mysql) == 
ER_ACCESS_DENIED_NO_PASSWORD_ERROR))
                {
                        printf("MySQL OK - Version: %s (protocol %d)\n",
                                mysql_get_server_info(&mysql),

Reply via email to