diff --git a/sql/sql_connect.cc b/sql/sql_connect.cc
index 4ae267a880c3fcb5996246290a62d7691570034b..cfcf2af3d09718bcf1dcb1d2c11240911fe94466 100644
--- a/sql/sql_connect.cc
+++ b/sql/sql_connect.cc
@@ -486,6 +486,18 @@ check_user(THD *thd, enum enum_server_command command,
                     thd->main_security_ctx.user,
                     thd->main_security_ctx.host_or_ip,
                     passwd_len ? ER(ER_YES) : ER(ER_NO));
+  /*
+    log access denied messages to the error log when log-warnings = 2
+    so that the overhead of the general query log is not required to track
+    failed connections
+  */
+  if (global_system_variables.log_warnings > 1)
+  {
+    sql_print_warning(ER(ER_ACCESS_DENIED_ERROR),
+                      thd->main_security_ctx.user,
+                      thd->main_security_ctx.host_or_ip,
+                      passwd_len ? ER(ER_YES) : ER(ER_NO));
+  }
   DBUG_RETURN(1);
 #endif /* NO_EMBEDDED_ACCESS_CHECKS */
 }