diff --git a/support-files/mysql.server.sh b/support-files/mysql.server.sh
index 87198fc9cf5ab010e757d3698b0922548928849d..fe885122e8ceb7d4bda96864b327de84d3e0db63 100644
--- a/support-files/mysql.server.sh
+++ b/support-files/mysql.server.sh
@@ -434,9 +434,36 @@ case "$mode" in
       fi
     fi
     ;;
-    *)
+  'configtest')
+    # Safeguard (relative paths, core dumps..)
+    cd $basedir
+    echo $echo_n "Testing MySQL configuration syntax"
+    daemon=$bindir/mysqld
+    if test -x $libexecdir/mysqld
+    then
+      daemon=$libexecdir/mysqld
+    elif test -x $sbindir/mysqld
+    then
+      daemon=$sbindir/mysqld
+    elif test -x `which mysqld`
+    then
+      daemon=`which mysqld`
+    else
+      log_failure_msg "Unable to locate the mysqld binary!"
+      exit 1
+    fi
+    help_out=`$daemon --help 2>&1`; r=$?
+    if test "$r" != 0 ; then
+      log_failure_msg "$help_out"
+      log_failure_msg "There are syntax errors in the server configuration. Please fix them!"
+    else
+      log_success_msg "Syntax OK"
+    fi
+    exit $r
+    ;;
+  *)
       # usage
-      echo "Usage: $0  {start|stop|restart|reload|force-reload|status}  [ MySQL server options ]"
+      echo "Usage: $0  {start|stop|restart|reload|force-reload|status|configtest}  [ MySQL server options ]"
       exit 1
     ;;
 esac