diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 2eabc4f0a6d..7b48d36f396 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -15237,6 +15237,10 @@ option_value_no_option_type:
                 MYSQL_YYABORT;
             }
           }
+        | '@' ident_or_text
+          { my_parse_error(thd, ER_SYNTAX_ERROR); }
+        | '@' ident_or_text equal
+          { my_parse_error(thd, ER_SYNTAX_ERROR); }
         | '@' ident_or_text equal expr
           {
             Item_func_set_user_var *item;
@@ -15248,6 +15252,12 @@ option_value_no_option_type:
               MYSQL_YYABORT;
             Lex->var_list.push_back(var, thd->mem_root);
           }
+        | '@' '@' opt_var_ident_type
+          { my_parse_error(thd, ER_SYNTAX_ERROR); }
+        | '@' '@' opt_var_ident_type internal_variable_name
+          { my_parse_error(thd, ER_SYNTAX_ERROR); }
+        | '@' '@' opt_var_ident_type internal_variable_name equal
+          { my_parse_error(thd, ER_SYNTAX_ERROR); }
         | '@' '@' opt_var_ident_type internal_variable_name equal set_expr_or_default
           {
             struct sys_var_with_base tmp= $4;
@@ -15265,6 +15275,8 @@ option_value_no_option_type:
             if (set_system_variable(thd, &tmp, $3, $6))
               MYSQL_YYABORT;
           }
+        | charset
+          { my_parse_error(thd, ER_SYNTAX_ERROR); }
         | charset old_or_new_charset_name_or_default
           {
             LEX *lex= thd->lex;
@@ -15279,6 +15291,10 @@ option_value_no_option_type:
               MYSQL_YYABORT;
             lex->var_list.push_back(var, thd->mem_root);
           }
+        | NAMES_SYM
+          { my_parse_error(thd, ER_SYNTAX_ERROR); }
+        | NAMES_SYM equal
+          { my_parse_error(thd, ER_SYNTAX_ERROR); }
         | NAMES_SYM equal expr
           {
             LEX *lex= Lex;
@@ -15313,6 +15329,10 @@ option_value_no_option_type:
               MYSQL_YYABORT;
             lex->var_list.push_back(var, thd->mem_root);
           }
+        | DEFAULT
+          { my_parse_error(thd, ER_SYNTAX_ERROR); }
+        | DEFAULT ROLE_SYM
+          { my_parse_error(thd, ER_SYNTAX_ERROR); }
         | DEFAULT ROLE_SYM grant_role
           {
             LEX *lex = Lex;
@@ -15330,6 +15350,8 @@ option_value_no_option_type:
             if (lex->sphead)
               lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT;
           }
+        | DEFAULT ROLE_SYM grant_role FOR_SYM
+          { my_parse_error(thd, ER_SYNTAX_ERROR); }
         | DEFAULT ROLE_SYM grant_role FOR_SYM user
           {
             LEX *lex = Lex;
@@ -15342,6 +15364,8 @@ option_value_no_option_type:
             if (lex->sphead)
               lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT;
           }
+        | ROLE_SYM
+          { my_parse_error(thd, ER_SYNTAX_ERROR); }
         | ROLE_SYM ident_or_text
           {
             LEX *lex = Lex;
@@ -15350,6 +15374,8 @@ option_value_no_option_type:
               MYSQL_YYABORT;
             lex->var_list.push_back(var, thd->mem_root);
           }
+        | PASSWORD_SYM opt_for_user
+          { my_parse_error(thd, ER_SYNTAX_ERROR); }
         | PASSWORD_SYM opt_for_user text_or_password
           {
             LEX *lex = Lex;
