<div id="docs-body">
 <div class="section">
  <div class="titlepage">
   <div>
    <div>
     <h4 class="title">
      <a name="validate-password-options-variables">
      </a>
      8.4.3.2 Password Validation Options and Variables
     </h4>
    </div>
   </div>
  </div>
  <a class="indexterm" name="idm46045241725472">
  </a>
  <p>
   This section describes the system and status variables that
   <code class="literal">
    validate_password
   </code>
   provides to enable its
        operation to be configured and monitored.
  </p>
  <div class="itemizedlist">
   <ul class="itemizedlist" style="list-style-type: disc; ">
    <li class="listitem">
     <p>
      <a class="xref" href="validate-password-options-variables.html#validate-password-system-variables" title="Password Validation Component System Variables">
       Password Validation Component System Variables
      </a>
     </p>
    </li>
    <li class="listitem">
     <p>
      <a class="xref" href="validate-password-options-variables.html#validate-password-status-variables" title="Password Validation Component Status Variables">
       Password Validation Component Status Variables
      </a>
     </p>
    </li>
    <li class="listitem">
     <p>
      <a class="xref" href="validate-password-options-variables.html#validate-password-plugin-options" title="Password Validation Plugin Options">
       Password Validation Plugin Options
      </a>
     </p>
    </li>
    <li class="listitem">
     <p>
      <a class="xref" href="validate-password-options-variables.html#validate-password-plugin-system-variables" title="Password Validation Plugin System Variables">
       Password Validation Plugin System Variables
      </a>
     </p>
    </li>
    <li class="listitem">
     <p>
      <a class="xref" href="validate-password-options-variables.html#validate-password-plugin-status-variables" title="Password Validation Plugin Status Variables">
       Password Validation Plugin Status Variables
      </a>
     </p>
    </li>
   </ul>
  </div>
  <div class="simplesect">
   <div class="titlepage">
    <div>
     <div class="simple">
      <h5 class="title">
       <a name="validate-password-system-variables">
       </a>
       Password Validation Component System Variables
      </h5>
     </div>
    </div>
   </div>
   <a class="indexterm" name="idm46045241715696">
   </a>
   <p>
    If the
    <code class="literal">
     validate_password
    </code>
    component is
          enabled, it exposes several system variables that enable
          configuration of password checking:
   </p>
   <div class="copytoclipboard-wrapper">
    <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa61836564"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-sql"><span class="token prompt">mysql&gt;</span> <span class="token keyword">SHOW</span> <span class="token keyword">VARIABLES</span> <span class="token operator">LIKE</span> <span class="token string">'validate_password.%'</span><span class="token punctuation">;</span>
<span class="token output"><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span></span>
<span class="token output"><span class="token punctuation">|</span> Variable_name                                   <span class="token punctuation">|</span> Value  <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span></span>
<span class="token output"><span class="token punctuation">|</span> validate_password.changed_characters_percentage <span class="token punctuation">|</span> 0      <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> validate_password.check_user_name               <span class="token punctuation">|</span> ON     <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> validate_password.dictionary_file               <span class="token punctuation">|</span>        <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> validate_password.length                        <span class="token punctuation">|</span> 8      <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> validate_password.mixed_case_count              <span class="token punctuation">|</span> 1      <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> validate_password.number_count                  <span class="token punctuation">|</span> 1      <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> validate_password.policy                        <span class="token punctuation">|</span> MEDIUM <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> validate_password.special_char_count            <span class="token punctuation">|</span> 1      <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span></span></code></pre>
   </div>
   <p>
    To change how passwords are checked, you can set these system
          variables at server startup or at runtime. The following list
          describes the meaning of each variable.
   </p>
   <div class="itemizedlist">
    <ul class="itemizedlist" style="list-style-type: disc; ">
     <li class="listitem">
      <p>
       <a name="sysvar_validate_password.changed_characters_percentage">
       </a>
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.changed_characters_percentage">
        <code class="literal">
         validate_password.changed_characters_percentage
        </code>
       </a>
      </p>
      <a class="indexterm" name="idm46045241707296">
      </a>
      <a class="indexterm" name="idm46045241706176">
      </a>
      <div class="informaltable">
       <table frame="box" rules="all" summary="Properties for validate_password.changed_characters_percentage">
        <colgroup>
         <col style="width: 30%"/>
         <col style="width: 70%"/>
        </colgroup>
        <tbody>
         <tr>
          <th>
           Command-Line Format
          </th>
          <td>
           <code class="literal">
            --validate-password.changed-characters-percentage[=value]
           </code>
          </td>
         </tr>
         <tr>
          <th>
           System Variable
          </th>
          <td>
           <code class="literal">
            <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.changed_characters_percentage">
             validate_password.changed_characters_percentage
            </a>
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Scope
          </th>
          <td>
           Global
          </td>
         </tr>
         <tr>
          <th>
           Dynamic
          </th>
          <td>
           Yes
          </td>
         </tr>
         <tr>
          <th>
           <a class="link" href="optimizer-hints.html#optimizer-hints-set-var" title="Variable-Setting Hint Syntax">
            <code class="literal">
             SET_VAR
            </code>
           </a>
           Hint Applies
          </th>
          <td>
           No
          </td>
         </tr>
         <tr>
          <th>
           Type
          </th>
          <td>
           Integer
          </td>
         </tr>
         <tr>
          <th>
           Default Value
          </th>
          <td>
           <code class="literal">
            0
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Minimum Value
          </th>
          <td>
           <code class="literal">
            0
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Maximum Value
          </th>
          <td>
           <code class="literal">
            100
           </code>
          </td>
         </tr>
        </tbody>
       </table>
      </div>
      <p>
       Indicates the minimum number of characters, as a
              percentage of all characters, in a password that a user
              must change before
       <code class="literal">
        validate_password
       </code>
       accepts a new password for the user's own account.
              This applies only when changing an existing password, and
              has no effect when setting a user account's initial
              password.
      </p>
      <p>
       This variable is not available unless
       <code class="literal">
        validate_password
       </code>
       is installed.
      </p>
      <p>
       By default,
       <code class="literal">
        validate_password.changed_characters_percentage
       </code>
       permits all of the characters from the current password to
              be reused in the new password. The range of valid
              percentages is 0 to 100. If set to 100 percent, all of the
              characters from the current password are rejected,
              regardless of the casing. Characters
              '
       <code class="literal">
        abc
       </code>
       ' and '
       <code class="literal">
        ABC
       </code>
       ' are
              considered to be the same characters. If
       <code class="literal">
        validate_password
       </code>
       rejects the new
              password, it reports an error indicating the minimum
              number of characters that must differ.
      </p>
      <p>
       If the
       <a class="link" href="alter-user.html" title="15.7.1.1 ALTER USER Statement">
        <code class="literal">
         ALTER USER
        </code>
       </a>
       statement
              does not provide the existing password in a
       <a class="link" href="replace.html" title="15.2.12 REPLACE Statement">
        <code class="literal">
         REPLACE
        </code>
       </a>
       clause, this
              variable is not enforced. Whether the
       <a class="link" href="replace.html" title="15.2.12 REPLACE Statement">
        <code class="literal">
         REPLACE
        </code>
       </a>
       clause is required
              is subject to the password verification policy as it
              applies to a given account. For an overview of the policy,
              see
       <a class="xref" href="password-management.html#password-reverification-policy" title="Password Verification-Required Policy">
        Password Verification-Required Policy
       </a>
       .
      </p>
     </li>
     <li class="listitem">
      <p>
       <a name="sysvar_validate_password.check_user_name">
       </a>
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.check_user_name">
        <code class="literal">
         validate_password.check_user_name
        </code>
       </a>
      </p>
      <a class="indexterm" name="idm46045241665232">
      </a>
      <a class="indexterm" name="idm46045241664192">
      </a>
      <div class="informaltable">
       <table frame="box" rules="all" summary="Properties for validate_password.check_user_name">
        <colgroup>
         <col style="width: 30%"/>
         <col style="width: 70%"/>
        </colgroup>
        <tbody>
         <tr>
          <th>
           Command-Line Format
          </th>
          <td>
           <code class="literal">
            --validate-password.check-user-name[={OFF|ON}]
           </code>
          </td>
         </tr>
         <tr>
          <th>
           System Variable
          </th>
          <td>
           <code class="literal">
            <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.check_user_name">
             validate_password.check_user_name
            </a>
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Scope
          </th>
          <td>
           Global
          </td>
         </tr>
         <tr>
          <th>
           Dynamic
          </th>
          <td>
           Yes
          </td>
         </tr>
         <tr>
          <th>
           <a class="link" href="optimizer-hints.html#optimizer-hints-set-var" title="Variable-Setting Hint Syntax">
            <code class="literal">
             SET_VAR
            </code>
           </a>
           Hint Applies
          </th>
          <td>
           No
          </td>
         </tr>
         <tr>
          <th>
           Type
          </th>
          <td>
           Boolean
          </td>
         </tr>
         <tr>
          <th>
           Default Value
          </th>
          <td>
           <code class="literal">
            ON
           </code>
          </td>
         </tr>
        </tbody>
       </table>
      </div>
      <p>
       Whether
       <code class="literal">
        validate_password
       </code>
       compares
              passwords to the user name part of the effective user
              account for the current session and rejects them if they
              match. This variable is unavailable unless
       <code class="literal">
        validate_password
       </code>
       is installed.
      </p>
      <p>
       By default,
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.check_user_name">
        <code class="literal">
         validate_password.check_user_name
        </code>
       </a>
       is enabled. This variable controls user name matching
              independent of the value of
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.policy">
        <code class="literal">
         validate_password.policy
        </code>
       </a>
       .
      </p>
      <p>
       When
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.check_user_name">
        <code class="literal">
         validate_password.check_user_name
        </code>
       </a>
       is enabled, it has these effects:
      </p>
      <div class="itemizedlist">
       <ul class="itemizedlist" style="list-style-type: circle; ">
        <li class="listitem">
         <p>
          Checking occurs in all contexts for which
          <code class="literal">
           validate_password
          </code>
          is invoked, which
                  includes use of statements such as
          <a class="link" href="alter-user.html" title="15.7.1.1 ALTER USER Statement">
           <code class="literal">
            ALTER USER
           </code>
          </a>
          or
          <a class="link" href="set-password.html" title="15.7.1.10 SET PASSWORD Statement">
           <code class="literal">
            SET PASSWORD
           </code>
          </a>
          to change
                  the current user's password, and invocation of
                  functions such as
          <a class="link" href="encryption-functions.html#function_validate-password-strength">
           <code class="literal">
            VALIDATE_PASSWORD_STRENGTH()
           </code>
          </a>
          .
         </p>
        </li>
        <li class="listitem">
         <p>
          The user names used for comparison are taken from the
                  values of the
          <a class="link" href="information-functions.html#function_user">
           <code class="literal">
            USER()
           </code>
          </a>
          and
          <a class="link" href="information-functions.html#function_current-user">
           <code class="literal">
            CURRENT_USER()
           </code>
          </a>
          functions for the current session. An implication is
                  that a user who has sufficient privileges to set
                  another user's password can set the password to
                  that user's name, and cannot set that user'
                  password to the name of the user executing the
                  statement. For example,
          <code class="literal">
           'root'@'localhost'
          </code>
          can set the
                  password for
          <code class="literal">
           'jeffrey'@'localhost'
          </code>
          to
          <code class="literal">
           'jeffrey'
          </code>
          , but cannot set the
                  password to
          <code class="literal">
           'root
          </code>
          .
         </p>
        </li>
        <li class="listitem">
         <p>
          Only the user name part of the
          <a class="link" href="information-functions.html#function_user">
           <code class="literal">
            USER()
           </code>
          </a>
          and
          <a class="link" href="information-functions.html#function_current-user">
           <code class="literal">
            CURRENT_USER()
           </code>
          </a>
          function
                  values is used, not the host name part. If a user name
                  is empty, no comparison occurs.
         </p>
        </li>
        <li class="listitem">
         <p>
          If a password is the same as the user name or its
                  reverse, a match occurs and the password is rejected.
         </p>
        </li>
        <li class="listitem">
         <p>
          User-name matching is case-sensitive. The password and
                  user name values are compared as binary strings on a
                  byte-by-byte basis.
         </p>
        </li>
        <li class="listitem">
         <p>
          If a password matches the user name,
          <a class="link" href="encryption-functions.html#function_validate-password-strength">
           <code class="literal">
            VALIDATE_PASSWORD_STRENGTH()
           </code>
          </a>
          returns 0 regardless of how other
          <code class="literal">
           validate_password
          </code>
          system variables
                  are set.
         </p>
        </li>
       </ul>
      </div>
     </li>
     <li class="listitem">
      <p>
       <a name="sysvar_validate_password.dictionary_file">
       </a>
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.dictionary_file">
        <code class="literal">
         validate_password.dictionary_file
        </code>
       </a>
      </p>
      <a class="indexterm" name="idm46045241611536">
      </a>
      <a class="indexterm" name="idm46045241610496">
      </a>
      <div class="informaltable">
       <table frame="box" rules="all" summary="Properties for validate_password.dictionary_file">
        <colgroup>
         <col style="width: 30%"/>
         <col style="width: 70%"/>
        </colgroup>
        <tbody>
         <tr>
          <th>
           Command-Line Format
          </th>
          <td>
           <code class="literal">
            --validate-password.dictionary-file=file_name
           </code>
          </td>
         </tr>
         <tr>
          <th>
           System Variable
          </th>
          <td>
           <code class="literal">
            <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.dictionary_file">
             validate_password.dictionary_file
            </a>
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Scope
          </th>
          <td>
           Global
          </td>
         </tr>
         <tr>
          <th>
           Dynamic
          </th>
          <td>
           Yes
          </td>
         </tr>
         <tr>
          <th>
           <a class="link" href="optimizer-hints.html#optimizer-hints-set-var" title="Variable-Setting Hint Syntax">
            <code class="literal">
             SET_VAR
            </code>
           </a>
           Hint Applies
          </th>
          <td>
           No
          </td>
         </tr>
         <tr>
          <th>
           Type
          </th>
          <td>
           File name
          </td>
         </tr>
        </tbody>
       </table>
      </div>
      <p>
       The path name of the dictionary file that
       <code class="literal">
        validate_password
       </code>
       uses for checking
              passwords. This variable is unavailable unless
       <code class="literal">
        validate_password
       </code>
       is installed.
      </p>
      <p>
       By default, this variable has an empty value and
              dictionary checks are not performed. For dictionary checks
              to occur, the variable value must be nonempty. If the file
              is named as a relative path, it is interpreted relative to
              the server data directory. File contents should be
              lowercase, one word per line. Contents are treated as
              having a character set of
       <code class="literal">
        utf8mb3
       </code>
       . The
              maximum permitted file size is 1MB.
      </p>
      <p>
       For the dictionary file to be used during password
              checking, the password policy must be set to 2
              (
       <code class="literal">
        STRONG
       </code>
       ); see the description of the
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.policy">
        <code class="literal">
         validate_password.policy
        </code>
       </a>
       system variable. Assuming that is true, each substring of
              the password of length 4 up to 100 is compared to the
              words in the dictionary file. Any match causes the
              password to be rejected. Comparisons are not
              case-sensitive.
      </p>
      <p>
       For
       <a class="link" href="encryption-functions.html#function_validate-password-strength">
        <code class="literal">
         VALIDATE_PASSWORD_STRENGTH()
        </code>
       </a>
       ,
              the password is checked against all policies, including
       <code class="literal">
        STRONG
       </code>
       , so the strength assessment
              includes the dictionary check regardless of the
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.policy">
        <code class="literal">
         validate_password.policy
        </code>
       </a>
       value.
      </p>
      <p>
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.dictionary_file">
        <code class="literal">
         validate_password.dictionary_file
        </code>
       </a>
       can be set at runtime and assigning a value causes the
              named file to be read without a server restart.
      </p>
     </li>
     <li class="listitem">
      <p>
       <a name="sysvar_validate_password.length">
       </a>
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.length">
        <code class="literal">
         validate_password.length
        </code>
       </a>
      </p>
      <a class="indexterm" name="idm46045241576496">
      </a>
      <a class="indexterm" name="idm46045241575392">
      </a>
      <div class="informaltable">
       <table frame="box" rules="all" summary="Properties for validate_password.length">
        <colgroup>
         <col style="width: 30%"/>
         <col style="width: 70%"/>
        </colgroup>
        <tbody>
         <tr>
          <th>
           Command-Line Format
          </th>
          <td>
           <code class="literal">
            --validate-password.length=#
           </code>
          </td>
         </tr>
         <tr>
          <th>
           System Variable
          </th>
          <td>
           <code class="literal">
            <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.length">
             validate_password.length
            </a>
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Scope
          </th>
          <td>
           Global
          </td>
         </tr>
         <tr>
          <th>
           Dynamic
          </th>
          <td>
           Yes
          </td>
         </tr>
         <tr>
          <th>
           <a class="link" href="optimizer-hints.html#optimizer-hints-set-var" title="Variable-Setting Hint Syntax">
            <code class="literal">
             SET_VAR
            </code>
           </a>
           Hint Applies
          </th>
          <td>
           No
          </td>
         </tr>
         <tr>
          <th>
           Type
          </th>
          <td>
           Integer
          </td>
         </tr>
         <tr>
          <th>
           Default Value
          </th>
          <td>
           <code class="literal">
            8
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Minimum Value
          </th>
          <td>
           <code class="literal">
            0
           </code>
          </td>
         </tr>
        </tbody>
       </table>
      </div>
      <p>
       The minimum number of characters that
       <code class="literal">
        validate_password
       </code>
       requires passwords to
              have. This variable is unavailable unless
       <code class="literal">
        validate_password
       </code>
       is installed.
      </p>
      <p>
       The
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.length">
        <code class="literal">
         validate_password.length
        </code>
       </a>
       minimum value is a function of several other related
              system variables. The value cannot be set less than the
              value of this expression:
      </p>
      <div class="copytoclipboard-wrapper">
       <pre class="programlisting language-none"><div class="docs-select-all right" id="sa73913852"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-none">validate_password.number_count
+ validate_password.special_char_count
+ (2 * validate_password.mixed_case_count)</code></pre>
      </div>
      <p>
       If
       <code class="literal">
        validate_password
       </code>
       adjusts the value
              of
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.length">
        <code class="literal">
         validate_password.length
        </code>
       </a>
       due to the preceding constraint, it writes a message to
              the error log.
      </p>
     </li>
     <li class="listitem">
      <p>
       <a name="sysvar_validate_password.mixed_case_count">
       </a>
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.mixed_case_count">
        <code class="literal">
         validate_password.mixed_case_count
        </code>
       </a>
      </p>
      <a class="indexterm" name="idm46045241541216">
      </a>
      <a class="indexterm" name="idm46045241540176">
      </a>
      <div class="informaltable">
       <table frame="box" rules="all" summary="Properties for validate_password.mixed_case_count">
        <colgroup>
         <col style="width: 30%"/>
         <col style="width: 70%"/>
        </colgroup>
        <tbody>
         <tr>
          <th>
           Command-Line Format
          </th>
          <td>
           <code class="literal">
            --validate-password.mixed-case-count=#
           </code>
          </td>
         </tr>
         <tr>
          <th>
           System Variable
          </th>
          <td>
           <code class="literal">
            <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.mixed_case_count">
             validate_password.mixed_case_count
            </a>
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Scope
          </th>
          <td>
           Global
          </td>
         </tr>
         <tr>
          <th>
           Dynamic
          </th>
          <td>
           Yes
          </td>
         </tr>
         <tr>
          <th>
           <a class="link" href="optimizer-hints.html#optimizer-hints-set-var" title="Variable-Setting Hint Syntax">
            <code class="literal">
             SET_VAR
            </code>
           </a>
           Hint Applies
          </th>
          <td>
           No
          </td>
         </tr>
         <tr>
          <th>
           Type
          </th>
          <td>
           Integer
          </td>
         </tr>
         <tr>
          <th>
           Default Value
          </th>
          <td>
           <code class="literal">
            1
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Minimum Value
          </th>
          <td>
           <code class="literal">
            0
           </code>
          </td>
         </tr>
        </tbody>
       </table>
      </div>
      <p>
       The minimum number of lowercase and uppercase characters
              that
       <code class="literal">
        validate_password
       </code>
       requires
              passwords to have if the password policy is
       <code class="literal">
        MEDIUM
       </code>
       or stronger. This variable is
              unavailable unless
       <code class="literal">
        validate_password
       </code>
       is
              installed.
      </p>
      <p>
       For a given
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.mixed_case_count">
        <code class="literal">
         validate_password.mixed_case_count
        </code>
       </a>
       value, the password must have that many lowercase
              characters, and that many uppercase characters.
      </p>
     </li>
     <li class="listitem">
      <p>
       <a name="sysvar_validate_password.number_count">
       </a>
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.number_count">
        <code class="literal">
         validate_password.number_count
        </code>
       </a>
      </p>
      <a class="indexterm" name="idm46045241508880">
      </a>
      <a class="indexterm" name="idm46045241507776">
      </a>
      <div class="informaltable">
       <table frame="box" rules="all" summary="Properties for validate_password.number_count">
        <colgroup>
         <col style="width: 30%"/>
         <col style="width: 70%"/>
        </colgroup>
        <tbody>
         <tr>
          <th>
           Command-Line Format
          </th>
          <td>
           <code class="literal">
            --validate-password.number-count=#
           </code>
          </td>
         </tr>
         <tr>
          <th>
           System Variable
          </th>
          <td>
           <code class="literal">
            <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.number_count">
             validate_password.number_count
            </a>
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Scope
          </th>
          <td>
           Global
          </td>
         </tr>
         <tr>
          <th>
           Dynamic
          </th>
          <td>
           Yes
          </td>
         </tr>
         <tr>
          <th>
           <a class="link" href="optimizer-hints.html#optimizer-hints-set-var" title="Variable-Setting Hint Syntax">
            <code class="literal">
             SET_VAR
            </code>
           </a>
           Hint Applies
          </th>
          <td>
           No
          </td>
         </tr>
         <tr>
          <th>
           Type
          </th>
          <td>
           Integer
          </td>
         </tr>
         <tr>
          <th>
           Default Value
          </th>
          <td>
           <code class="literal">
            1
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Minimum Value
          </th>
          <td>
           <code class="literal">
            0
           </code>
          </td>
         </tr>
        </tbody>
       </table>
      </div>
      <p>
       The minimum number of numeric (digit) characters that
       <code class="literal">
        validate_password
       </code>
       requires passwords to
              have if the password policy is
       <code class="literal">
        MEDIUM
       </code>
       or stronger. This variable is unavailable unless
       <code class="literal">
        validate_password
       </code>
       is installed.
      </p>
     </li>
     <li class="listitem">
      <p>
       <a name="sysvar_validate_password.policy">
       </a>
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.policy">
        <code class="literal">
         validate_password.policy
        </code>
       </a>
      </p>
      <a class="indexterm" name="idm46045241478432">
      </a>
      <a class="indexterm" name="idm46045241477328">
      </a>
      <div class="informaltable">
       <table frame="box" rules="all" summary="Properties for validate_password.policy">
        <colgroup>
         <col style="width: 30%"/>
         <col style="width: 70%"/>
        </colgroup>
        <tbody>
         <tr>
          <th>
           Command-Line Format
          </th>
          <td>
           <code class="literal">
            --validate-password.policy=value
           </code>
          </td>
         </tr>
         <tr>
          <th>
           System Variable
          </th>
          <td>
           <code class="literal">
            <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.policy">
             validate_password.policy
            </a>
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Scope
          </th>
          <td>
           Global
          </td>
         </tr>
         <tr>
          <th>
           Dynamic
          </th>
          <td>
           Yes
          </td>
         </tr>
         <tr>
          <th>
           <a class="link" href="optimizer-hints.html#optimizer-hints-set-var" title="Variable-Setting Hint Syntax">
            <code class="literal">
             SET_VAR
            </code>
           </a>
           Hint Applies
          </th>
          <td>
           No
          </td>
         </tr>
         <tr>
          <th>
           Type
          </th>
          <td>
           Enumeration
          </td>
         </tr>
         <tr>
          <th>
           Default Value
          </th>
          <td>
           <code class="literal">
            1
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Valid Values
          </th>
          <td>
           <p class="valid-value">
            <code class="literal">
             0
            </code>
           </p>
           <p class="valid-value">
            <code class="literal">
             1
            </code>
           </p>
           <p class="valid-value">
            <code class="literal">
             2
            </code>
           </p>
          </td>
         </tr>
        </tbody>
       </table>
      </div>
      <p>
       The password policy enforced by
       <code class="literal">
        validate_password
       </code>
       . This variable is
              unavailable unless
       <code class="literal">
        validate_password
       </code>
       is
              installed.
      </p>
      <p>
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.policy">
        <code class="literal">
         validate_password.policy
        </code>
       </a>
       affects how
       <code class="literal">
        validate_password
       </code>
       uses its
              other policy-setting system variables, except for checking
              passwords against user names, which is controlled
              independently by
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.check_user_name">
        <code class="literal">
         validate_password.check_user_name
        </code>
       </a>
       .
      </p>
      <p>
       The
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.policy">
        <code class="literal">
         validate_password.policy
        </code>
       </a>
       value can be specified using numeric values 0, 1, 2, or
              the corresponding symbolic values
       <code class="literal">
        LOW
       </code>
       ,
       <code class="literal">
        MEDIUM
       </code>
       ,
       <code class="literal">
        STRONG
       </code>
       . The
              following table describes the tests performed for each
              policy. For the length test, the required length is the
              value of the
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.length">
        <code class="literal">
         validate_password.length
        </code>
       </a>
       system variable. Similarly, the required values for the
              other tests are given by other
       <code class="literal">
        validate_password.
        <em class="replaceable">
         <code>
          xxx
         </code>
        </em>
       </code>
       variables.
      </p>
      <div class="informaltable">
       <table summary="Password policies enforced by the validate_password component and the tests performed for each policy.">
        <colgroup>
         <col style="width: 20%"/>
         <col style="width: 80%"/>
        </colgroup>
        <thead>
         <tr>
          <th>
           Policy
          </th>
          <th>
           Tests Performed
          </th>
         </tr>
        </thead>
        <tbody>
         <tr>
          <td>
           <code class="literal">
            0
           </code>
           or
           <code class="literal">
            LOW
           </code>
          </td>
          <td>
           Length
          </td>
         </tr>
         <tr>
          <td>
           <code class="literal">
            1
           </code>
           or
           <code class="literal">
            MEDIUM
           </code>
          </td>
          <td>
           Length; numeric, lowercase/uppercase, and special characters
          </td>
         </tr>
         <tr>
          <td>
           <code class="literal">
            2
           </code>
           or
           <code class="literal">
            STRONG
           </code>
          </td>
          <td>
           Length; numeric, lowercase/uppercase, and special characters; dictionary
                    file
          </td>
         </tr>
        </tbody>
       </table>
      </div>
     </li>
     <li class="listitem">
      <p>
       <a name="sysvar_validate_password.special_char_count">
       </a>
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.special_char_count">
        <code class="literal">
         validate_password.special_char_count
        </code>
       </a>
      </p>
      <a class="indexterm" name="idm46045241420960">
      </a>
      <a class="indexterm" name="idm46045241419920">
      </a>
      <div class="informaltable">
       <table frame="box" rules="all" summary="Properties for validate_password.special_char_count">
        <colgroup>
         <col style="width: 30%"/>
         <col style="width: 70%"/>
        </colgroup>
        <tbody>
         <tr>
          <th>
           Command-Line Format
          </th>
          <td>
           <code class="literal">
            --validate-password.special-char-count=#
           </code>
          </td>
         </tr>
         <tr>
          <th>
           System Variable
          </th>
          <td>
           <code class="literal">
            <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.special_char_count">
             validate_password.special_char_count
            </a>
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Scope
          </th>
          <td>
           Global
          </td>
         </tr>
         <tr>
          <th>
           Dynamic
          </th>
          <td>
           Yes
          </td>
         </tr>
         <tr>
          <th>
           <a class="link" href="optimizer-hints.html#optimizer-hints-set-var" title="Variable-Setting Hint Syntax">
            <code class="literal">
             SET_VAR
            </code>
           </a>
           Hint Applies
          </th>
          <td>
           No
          </td>
         </tr>
         <tr>
          <th>
           Type
          </th>
          <td>
           Integer
          </td>
         </tr>
         <tr>
          <th>
           Default Value
          </th>
          <td>
           <code class="literal">
            1
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Minimum Value
          </th>
          <td>
           <code class="literal">
            0
           </code>
          </td>
         </tr>
        </tbody>
       </table>
      </div>
      <p>
       The minimum number of nonalphanumeric characters that
       <code class="literal">
        validate_password
       </code>
       requires passwords to
              have if the password policy is
       <code class="literal">
        MEDIUM
       </code>
       or stronger. This variable is unavailable unless
       <code class="literal">
        validate_password
       </code>
       is installed.
      </p>
     </li>
    </ul>
   </div>
  </div>
  <div class="simplesect">
   <div class="titlepage">
    <div>
     <div class="simple">
      <h5 class="title">
       <a name="validate-password-status-variables">
       </a>
       Password Validation Component Status Variables
      </h5>
     </div>
    </div>
   </div>
   <a class="indexterm" name="idm46045241391408">
   </a>
   <p>
    If the
    <code class="literal">
     validate_password
    </code>
    component is
          enabled, it exposes status variables that provide operational
          information:
   </p>
   <div class="copytoclipboard-wrapper">
    <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa69011421"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-sql"><span class="token prompt">mysql&gt;</span> <span class="token keyword">SHOW</span> <span class="token keyword">STATUS</span> <span class="token operator">LIKE</span> <span class="token string">'validate_password.%'</span><span class="token punctuation">;</span>
<span class="token output"><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span></span>
<span class="token output"><span class="token punctuation">|</span> Variable_name                                 <span class="token punctuation">|</span> Value               <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span></span>
<span class="token output"><span class="token punctuation">|</span> validate_password.dictionary_file_last_parsed <span class="token punctuation">|</span> 2019<span class="token punctuation">-</span>10<span class="token punctuation">-</span>03 08:33:49 <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">|</span> validate_password.dictionary_file_words_count <span class="token punctuation">|</span> 1902                <span class="token punctuation">|</span></span>
<span class="token output"><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">-</span><span class="token punctuation">+</span></span></code></pre>
   </div>
   <p>
    The following list describes the meaning of each status
          variable.
   </p>
   <div class="itemizedlist">
    <ul class="itemizedlist" style="list-style-type: disc; ">
     <li class="listitem">
      <p>
       <a name="statvar_validate_password.dictionary_file_last_parsed">
       </a>
       <a class="link" href="validate-password-options-variables.html#statvar_validate_password.dictionary_file_last_parsed">
        <code class="literal">
         validate_password.dictionary_file_last_parsed
        </code>
       </a>
      </p>
      <a class="indexterm" name="idm46045241383520">
      </a>
      <a class="indexterm" name="idm46045241382400">
      </a>
      <p>
       When the dictionary file was last parsed. This variable is
              unavailable unless
       <code class="literal">
        validate_password
       </code>
       is
              installed.
      </p>
     </li>
     <li class="listitem">
      <p>
       <a name="statvar_validate_password.dictionary_file_words_count">
       </a>
       <a class="link" href="validate-password-options-variables.html#statvar_validate_password.dictionary_file_words_count">
        <code class="literal">
         validate_password.dictionary_file_words_count
        </code>
       </a>
      </p>
      <a class="indexterm" name="idm46045241377120">
      </a>
      <a class="indexterm" name="idm46045241376000">
      </a>
      <p>
       The number of words read from the dictionary file. This
              variable is unavailable unless
       <code class="literal">
        validate_password
       </code>
       is installed.
      </p>
     </li>
    </ul>
   </div>
  </div>
  <div class="simplesect">
   <div class="titlepage">
    <div>
     <div class="simple">
      <h5 class="title">
       <a name="validate-password-plugin-options">
       </a>
       Password Validation Plugin Options
      </h5>
     </div>
    </div>
   </div>
   <a class="indexterm" name="idm46045241371680">
   </a>
   <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
    <div class="admon-title">
     Note
    </div>
    <p>
     In MySQL 8.4, the
     <code class="literal">
      validate_password
     </code>
     plugin was
            reimplemented as the
     <code class="literal">
      validate_password
     </code>
     component. The
     <code class="literal">
      validate_password
     </code>
     plugin
            is deprecated; expect it to be removed in a future version
            of MySQL. Consequently, its options are also deprecated, and
            you should expect them to be removed as well. MySQL
            installations that use the plugin should make the transition
            to using the component instead. See
     <a class="xref" href="validate-password-transitioning.html" title="8.4.3.3 Transitioning to the Password Validation Component">
      Section 8.4.3.3, “Transitioning to the Password Validation Component”
     </a>
     .
    </p>
   </div>
   <p>
    To control activation of the
    <code class="literal">
     validate_password
    </code>
    plugin, use this option:
   </p>
   <div class="itemizedlist">
    <ul class="itemizedlist" style="list-style-type: disc; ">
     <li class="listitem">
      <p>
       <a name="option_mysqld_validate-password">
       </a>
       <a class="link" href="validate-password-options-variables.html#option_mysqld_validate-password">
        <code class="option">
         --validate-password[=
         <em class="replaceable">
          <code>
           value
          </code>
         </em>
         ]
        </code>
       </a>
      </p>
      <a class="indexterm" name="idm46045241362128">
      </a>
      <a class="indexterm" name="idm46045241360672">
      </a>
      <div class="informaltable">
       <table frame="box" rules="all" summary="Properties for validate-password">
        <colgroup>
         <col style="width: 30%"/>
         <col style="width: 70%"/>
        </colgroup>
        <tbody>
         <tr>
          <th>
           Command-Line Format
          </th>
          <td>
           <code class="literal">
            --validate-password[=value]
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Type
          </th>
          <td>
           Enumeration
          </td>
         </tr>
         <tr>
          <th>
           Default Value
          </th>
          <td>
           <code class="literal">
            ON
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Valid Values
          </th>
          <td>
           <p class="valid-value">
            <code class="literal">
             ON
            </code>
           </p>
           <p class="valid-value">
            <code class="literal">
             OFF
            </code>
           </p>
           <p class="valid-value">
            <code class="literal">
             FORCE
            </code>
           </p>
           <p class="valid-value">
            <code class="literal">
             FORCE_PLUS_PERMANENT
            </code>
           </p>
          </td>
         </tr>
        </tbody>
       </table>
      </div>
      <p>
       This option controls how the server loads the deprecated
       <code class="literal">
        validate_password
       </code>
       plugin at startup.
              The value should be one of those available for
              plugin-loading options, as described in
       <a class="xref" href="plugin-loading.html" title="7.6.1 Installing and Uninstalling Plugins">
        Section 7.6.1, “Installing and Uninstalling Plugins”
       </a>
       . For example,
       <a class="link" href="validate-password-options-variables.html#option_mysqld_validate-password">
        <code class="option">
         --validate-password=FORCE_PLUS_PERMANENT
        </code>
       </a>
       tells the server to load the plugin at startup and
              prevents it from being removed while the server is
              running.
      </p>
      <p>
       This option is available only if the
       <code class="literal">
        validate_password
       </code>
       plugin has been
              previously registered with
       <a class="link" href="install-plugin.html" title="15.7.4.4 INSTALL PLUGIN Statement">
        <code class="literal">
         INSTALL
              PLUGIN
        </code>
       </a>
       or is loaded with
       <a class="link" href="server-options.html#option_mysqld_plugin-load-add">
        <code class="option">
         --plugin-load-add
        </code>
       </a>
       . See
       <a class="xref" href="validate-password-installation.html" title="8.4.3.1 Password Validation Component Installation and Uninstallation">
        Section 8.4.3.1, “Password Validation Component Installation and Uninstallation”
       </a>
       .
      </p>
     </li>
    </ul>
   </div>
  </div>
  <div class="simplesect">
   <div class="titlepage">
    <div>
     <div class="simple">
      <h5 class="title">
       <a name="validate-password-plugin-system-variables">
       </a>
       Password Validation Plugin System Variables
      </h5>
     </div>
    </div>
   </div>
   <a class="indexterm" name="idm46045241334368">
   </a>
   <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
    <div class="admon-title">
     Note
    </div>
    <p>
     In MySQL 8.4, the
     <code class="literal">
      validate_password
     </code>
     plugin was
            reimplemented as the
     <code class="literal">
      validate_password
     </code>
     component. The
     <code class="literal">
      validate_password
     </code>
     plugin
            is deprecated; expect it to be removed in a future version
            of MySQL. Consequently, its system variables are also
            deprecated and you should expect them to be removed as well.
            Use the corresponding system variables of the
     <code class="literal">
      validate_password
     </code>
     component instead; see
     <a class="xref" href="validate-password-options-variables.html#validate-password-system-variables" title="Password Validation Component System Variables">
      Password Validation Component System Variables
     </a>
     . MySQL
            installations that use the plugin should make the transition
            to using the component instead. See
     <a class="xref" href="validate-password-transitioning.html" title="8.4.3.3 Transitioning to the Password Validation Component">
      Section 8.4.3.3, “Transitioning to the Password Validation Component”
     </a>
     .
    </p>
   </div>
   <div class="itemizedlist">
    <ul class="itemizedlist" style="list-style-type: disc; ">
     <li class="listitem">
      <p>
       <a name="sysvar_validate_password_check_user_name">
       </a>
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password_check_user_name">
        <code class="literal">
         validate_password_check_user_name
        </code>
       </a>
      </p>
      <a class="indexterm" name="idm46045241324592">
      </a>
      <a class="indexterm" name="idm46045241323552">
      </a>
      <div class="informaltable">
       <table frame="box" rules="all" summary="Properties for validate_password_check_user_name">
        <colgroup>
         <col style="width: 30%"/>
         <col style="width: 70%"/>
        </colgroup>
        <tbody>
         <tr>
          <th>
           Command-Line Format
          </th>
          <td>
           <code class="literal">
            --validate-password-check-user-name[={OFF|ON}]
           </code>
          </td>
         </tr>
         <tr>
          <th>
           System Variable
          </th>
          <td>
           <code class="literal">
            <a class="link" href="validate-password-options-variables.html#sysvar_validate_password_check_user_name">
             validate_password_check_user_name
            </a>
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Scope
          </th>
          <td>
           Global
          </td>
         </tr>
         <tr>
          <th>
           Dynamic
          </th>
          <td>
           Yes
          </td>
         </tr>
         <tr>
          <th>
           <a class="link" href="optimizer-hints.html#optimizer-hints-set-var" title="Variable-Setting Hint Syntax">
            <code class="literal">
             SET_VAR
            </code>
           </a>
           Hint Applies
          </th>
          <td>
           No
          </td>
         </tr>
         <tr>
          <th>
           Type
          </th>
          <td>
           Boolean
          </td>
         </tr>
         <tr>
          <th>
           Default Value
          </th>
          <td>
           <code class="literal">
            ON
           </code>
          </td>
         </tr>
        </tbody>
       </table>
      </div>
      <p>
       This
       <code class="literal">
        validate_password
       </code>
       plugin system
              variable is deprecated; expect it to be removed in a
              future version of MySQL. Use the corresponding
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.check_user_name">
        <code class="literal">
         validate_password.check_user_name
        </code>
       </a>
       system variable of the
       <code class="literal">
        validate_password
       </code>
       component instead.
      </p>
     </li>
     <li class="listitem">
      <p>
       <a name="sysvar_validate_password_dictionary_file">
       </a>
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password_dictionary_file">
        <code class="literal">
         validate_password_dictionary_file
        </code>
       </a>
      </p>
      <a class="indexterm" name="idm46045241295856">
      </a>
      <a class="indexterm" name="idm46045241294816">
      </a>
      <div class="informaltable">
       <table frame="box" rules="all" summary="Properties for validate_password_dictionary_file">
        <colgroup>
         <col style="width: 30%"/>
         <col style="width: 70%"/>
        </colgroup>
        <tbody>
         <tr>
          <th>
           Command-Line Format
          </th>
          <td>
           <code class="literal">
            --validate-password-dictionary-file=file_name
           </code>
          </td>
         </tr>
         <tr>
          <th>
           System Variable
          </th>
          <td>
           <code class="literal">
            <a class="link" href="validate-password-options-variables.html#sysvar_validate_password_dictionary_file">
             validate_password_dictionary_file
            </a>
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Scope
          </th>
          <td>
           Global
          </td>
         </tr>
         <tr>
          <th>
           Dynamic
          </th>
          <td>
           Yes
          </td>
         </tr>
         <tr>
          <th>
           <a class="link" href="optimizer-hints.html#optimizer-hints-set-var" title="Variable-Setting Hint Syntax">
            <code class="literal">
             SET_VAR
            </code>
           </a>
           Hint Applies
          </th>
          <td>
           No
          </td>
         </tr>
         <tr>
          <th>
           Type
          </th>
          <td>
           File name
          </td>
         </tr>
        </tbody>
       </table>
      </div>
      <p>
       This
       <code class="literal">
        validate_password
       </code>
       plugin system
              variable is deprecated; expect it to be removed in a
              future version of MySQL. Use the corresponding
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.dictionary_file">
        <code class="literal">
         validate_password.dictionary_file
        </code>
       </a>
       system variable of the
       <code class="literal">
        validate_password
       </code>
       component instead.
      </p>
     </li>
     <li class="listitem">
      <p>
       <a name="sysvar_validate_password_length">
       </a>
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password_length">
        <code class="literal">
         validate_password_length
        </code>
       </a>
      </p>
      <a class="indexterm" name="idm46045241269664">
      </a>
      <a class="indexterm" name="idm46045241268560">
      </a>
      <div class="informaltable">
       <table frame="box" rules="all" summary="Properties for validate_password_length">
        <colgroup>
         <col style="width: 30%"/>
         <col style="width: 70%"/>
        </colgroup>
        <tbody>
         <tr>
          <th>
           Command-Line Format
          </th>
          <td>
           <code class="literal">
            --validate-password-length=#
           </code>
          </td>
         </tr>
         <tr>
          <th>
           System Variable
          </th>
          <td>
           <code class="literal">
            <a class="link" href="validate-password-options-variables.html#sysvar_validate_password_length">
             validate_password_length
            </a>
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Scope
          </th>
          <td>
           Global
          </td>
         </tr>
         <tr>
          <th>
           Dynamic
          </th>
          <td>
           Yes
          </td>
         </tr>
         <tr>
          <th>
           <a class="link" href="optimizer-hints.html#optimizer-hints-set-var" title="Variable-Setting Hint Syntax">
            <code class="literal">
             SET_VAR
            </code>
           </a>
           Hint Applies
          </th>
          <td>
           No
          </td>
         </tr>
         <tr>
          <th>
           Type
          </th>
          <td>
           Integer
          </td>
         </tr>
         <tr>
          <th>
           Default Value
          </th>
          <td>
           <code class="literal">
            8
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Minimum Value
          </th>
          <td>
           <code class="literal">
            0
           </code>
          </td>
         </tr>
        </tbody>
       </table>
      </div>
      <p>
       This
       <code class="literal">
        validate_password
       </code>
       plugin system
              variable is deprecated; expect it to be removed in a
              future version of MySQL. Use the corresponding
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.length">
        <code class="literal">
         validate_password.length
        </code>
       </a>
       system variable of the
       <code class="literal">
        validate_password
       </code>
       component instead.
      </p>
     </li>
     <li class="listitem">
      <p>
       <a name="sysvar_validate_password_mixed_case_count">
       </a>
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password_mixed_case_count">
        <code class="literal">
         validate_password_mixed_case_count
        </code>
       </a>
      </p>
      <a class="indexterm" name="idm46045241238608">
      </a>
      <a class="indexterm" name="idm46045241237568">
      </a>
      <div class="informaltable">
       <table frame="box" rules="all" summary="Properties for validate_password_mixed_case_count">
        <colgroup>
         <col style="width: 30%"/>
         <col style="width: 70%"/>
        </colgroup>
        <tbody>
         <tr>
          <th>
           Command-Line Format
          </th>
          <td>
           <code class="literal">
            --validate-password-mixed-case-count=#
           </code>
          </td>
         </tr>
         <tr>
          <th>
           System Variable
          </th>
          <td>
           <code class="literal">
            <a class="link" href="validate-password-options-variables.html#sysvar_validate_password_mixed_case_count">
             validate_password_mixed_case_count
            </a>
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Scope
          </th>
          <td>
           Global
          </td>
         </tr>
         <tr>
          <th>
           Dynamic
          </th>
          <td>
           Yes
          </td>
         </tr>
         <tr>
          <th>
           <a class="link" href="optimizer-hints.html#optimizer-hints-set-var" title="Variable-Setting Hint Syntax">
            <code class="literal">
             SET_VAR
            </code>
           </a>
           Hint Applies
          </th>
          <td>
           No
          </td>
         </tr>
         <tr>
          <th>
           Type
          </th>
          <td>
           Integer
          </td>
         </tr>
         <tr>
          <th>
           Default Value
          </th>
          <td>
           <code class="literal">
            1
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Minimum Value
          </th>
          <td>
           <code class="literal">
            0
           </code>
          </td>
         </tr>
        </tbody>
       </table>
      </div>
      <p>
       This
       <code class="literal">
        validate_password
       </code>
       plugin system
              variable is deprecated; expect it to be removed in a
              future version of MySQL. Use the corresponding
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.mixed_case_count">
        <code class="literal">
         validate_password.mixed_case_count
        </code>
       </a>
       system variable of the
       <code class="literal">
        validate_password
       </code>
       component instead.
      </p>
     </li>
     <li class="listitem">
      <p>
       <a name="sysvar_validate_password_number_count">
       </a>
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password_number_count">
        <code class="literal">
         validate_password_number_count
        </code>
       </a>
      </p>
      <a class="indexterm" name="idm46045241207600">
      </a>
      <a class="indexterm" name="idm46045241206496">
      </a>
      <div class="informaltable">
       <table frame="box" rules="all" summary="Properties for validate_password_number_count">
        <colgroup>
         <col style="width: 30%"/>
         <col style="width: 70%"/>
        </colgroup>
        <tbody>
         <tr>
          <th>
           Command-Line Format
          </th>
          <td>
           <code class="literal">
            --validate-password-number-count=#
           </code>
          </td>
         </tr>
         <tr>
          <th>
           System Variable
          </th>
          <td>
           <code class="literal">
            <a class="link" href="validate-password-options-variables.html#sysvar_validate_password_number_count">
             validate_password_number_count
            </a>
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Scope
          </th>
          <td>
           Global
          </td>
         </tr>
         <tr>
          <th>
           Dynamic
          </th>
          <td>
           Yes
          </td>
         </tr>
         <tr>
          <th>
           <a class="link" href="optimizer-hints.html#optimizer-hints-set-var" title="Variable-Setting Hint Syntax">
            <code class="literal">
             SET_VAR
            </code>
           </a>
           Hint Applies
          </th>
          <td>
           No
          </td>
         </tr>
         <tr>
          <th>
           Type
          </th>
          <td>
           Integer
          </td>
         </tr>
         <tr>
          <th>
           Default Value
          </th>
          <td>
           <code class="literal">
            1
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Minimum Value
          </th>
          <td>
           <code class="literal">
            0
           </code>
          </td>
         </tr>
        </tbody>
       </table>
      </div>
      <p>
       This
       <code class="literal">
        validate_password
       </code>
       plugin system
              variable is deprecated; expect it to be removed in a
              future version of MySQL. Use the corresponding
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.number_count">
        <code class="literal">
         validate_password.number_count
        </code>
       </a>
       system variable of the
       <code class="literal">
        validate_password
       </code>
       component instead.
      </p>
     </li>
     <li class="listitem">
      <p>
       <a name="sysvar_validate_password_policy">
       </a>
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password_policy">
        <code class="literal">
         validate_password_policy
        </code>
       </a>
      </p>
      <a class="indexterm" name="idm46045241176656">
      </a>
      <a class="indexterm" name="idm46045241175552">
      </a>
      <div class="informaltable">
       <table frame="box" rules="all" summary="Properties for validate_password_policy">
        <colgroup>
         <col style="width: 30%"/>
         <col style="width: 70%"/>
        </colgroup>
        <tbody>
         <tr>
          <th>
           Command-Line Format
          </th>
          <td>
           <code class="literal">
            --validate-password-policy=value
           </code>
          </td>
         </tr>
         <tr>
          <th>
           System Variable
          </th>
          <td>
           <code class="literal">
            <a class="link" href="validate-password-options-variables.html#sysvar_validate_password_policy">
             validate_password_policy
            </a>
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Scope
          </th>
          <td>
           Global
          </td>
         </tr>
         <tr>
          <th>
           Dynamic
          </th>
          <td>
           Yes
          </td>
         </tr>
         <tr>
          <th>
           <a class="link" href="optimizer-hints.html#optimizer-hints-set-var" title="Variable-Setting Hint Syntax">
            <code class="literal">
             SET_VAR
            </code>
           </a>
           Hint Applies
          </th>
          <td>
           No
          </td>
         </tr>
         <tr>
          <th>
           Type
          </th>
          <td>
           Enumeration
          </td>
         </tr>
         <tr>
          <th>
           Default Value
          </th>
          <td>
           <code class="literal">
            1
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Valid Values
          </th>
          <td>
           <p class="valid-value">
            <code class="literal">
             0
            </code>
           </p>
           <p class="valid-value">
            <code class="literal">
             1
            </code>
           </p>
           <p class="valid-value">
            <code class="literal">
             2
            </code>
           </p>
          </td>
         </tr>
        </tbody>
       </table>
      </div>
      <p>
       This
       <code class="literal">
        validate_password
       </code>
       plugin system
              variable is deprecated; expect it to be removed in a
              future version of MySQL. Use the corresponding
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.policy">
        <code class="literal">
         validate_password.policy
        </code>
       </a>
       system variable of the
       <code class="literal">
        validate_password
       </code>
       component instead.
      </p>
     </li>
     <li class="listitem">
      <p>
       <a name="sysvar_validate_password_special_char_count">
       </a>
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password_special_char_count">
        <code class="literal">
         validate_password_special_char_count
        </code>
       </a>
      </p>
      <a class="indexterm" name="idm46045241143280">
      </a>
      <a class="indexterm" name="idm46045241142240">
      </a>
      <div class="informaltable">
       <table frame="box" rules="all" summary="Properties for validate_password_special_char_count">
        <colgroup>
         <col style="width: 30%"/>
         <col style="width: 70%"/>
        </colgroup>
        <tbody>
         <tr>
          <th>
           Command-Line Format
          </th>
          <td>
           <code class="literal">
            --validate-password-special-char-count=#
           </code>
          </td>
         </tr>
         <tr>
          <th>
           System Variable
          </th>
          <td>
           <code class="literal">
            <a class="link" href="validate-password-options-variables.html#sysvar_validate_password_special_char_count">
             validate_password_special_char_count
            </a>
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Scope
          </th>
          <td>
           Global
          </td>
         </tr>
         <tr>
          <th>
           Dynamic
          </th>
          <td>
           Yes
          </td>
         </tr>
         <tr>
          <th>
           <a class="link" href="optimizer-hints.html#optimizer-hints-set-var" title="Variable-Setting Hint Syntax">
            <code class="literal">
             SET_VAR
            </code>
           </a>
           Hint Applies
          </th>
          <td>
           No
          </td>
         </tr>
         <tr>
          <th>
           Type
          </th>
          <td>
           Integer
          </td>
         </tr>
         <tr>
          <th>
           Default Value
          </th>
          <td>
           <code class="literal">
            1
           </code>
          </td>
         </tr>
         <tr>
          <th>
           Minimum Value
          </th>
          <td>
           <code class="literal">
            0
           </code>
          </td>
         </tr>
        </tbody>
       </table>
      </div>
      <p>
       This
       <code class="literal">
        validate_password
       </code>
       plugin system
              variable is deprecated; expect it to be removed in a
              future version of MySQL. Use the corresponding
       <a class="link" href="validate-password-options-variables.html#sysvar_validate_password.special_char_count">
        <code class="literal">
         validate_password.special_char_count
        </code>
       </a>
       system variable of the
       <code class="literal">
        validate_password
       </code>
       component instead.
      </p>
     </li>
    </ul>
   </div>
  </div>
  <div class="simplesect">
   <div class="titlepage">
    <div>
     <div class="simple">
      <h5 class="title">
       <a name="validate-password-plugin-status-variables">
       </a>
       Password Validation Plugin Status Variables
      </h5>
     </div>
    </div>
   </div>
   <a class="indexterm" name="idm46045241113152">
   </a>
   <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
    <div class="admon-title">
     Note
    </div>
    <p>
     In MySQL 8.4, the
     <code class="literal">
      validate_password
     </code>
     plugin was
            reimplemented as the
     <code class="literal">
      validate_password
     </code>
     component. The
     <code class="literal">
      validate_password
     </code>
     plugin
            is deprecated; expect it to be removed in a future version
            of MySQL. Consequently, its status variables are also
            deprecated; expect it to be removed. Use the corresponding
            status variables of the
     <code class="literal">
      validate_password
     </code>
     component; see
     <a class="xref" href="validate-password-options-variables.html#validate-password-status-variables" title="Password Validation Component Status Variables">
      Password Validation Component Status Variables
     </a>
     . MySQL
            installations that use the plugin should make the transition
            to using the component instead. See
     <a class="xref" href="validate-password-transitioning.html" title="8.4.3.3 Transitioning to the Password Validation Component">
      Section 8.4.3.3, “Transitioning to the Password Validation Component”
     </a>
     .
    </p>
   </div>
   <div class="itemizedlist">
    <ul class="itemizedlist" style="list-style-type: disc; ">
     <li class="listitem">
      <p>
       <a name="statvar_validate_password_dictionary_file_last_parsed">
       </a>
       <a class="link" href="validate-password-options-variables.html#statvar_validate_password_dictionary_file_last_parsed">
        <code class="literal">
         validate_password_dictionary_file_last_parsed
        </code>
       </a>
      </p>
      <a class="indexterm" name="idm46045241103456">
      </a>
      <a class="indexterm" name="idm46045241102336">
      </a>
      <p>
       This
       <code class="literal">
        validate_password
       </code>
       plugin status
              variable is deprecated; expect it to be removed in a
              future version of MySQL. Use the corresponding
       <a class="link" href="validate-password-options-variables.html#statvar_validate_password.dictionary_file_last_parsed">
        <code class="literal">
         validate_password.dictionary_file_last_parsed
        </code>
       </a>
       status variable of the
       <code class="literal">
        validate_password
       </code>
       component instead.
      </p>
     </li>
     <li class="listitem">
      <p>
       <a name="statvar_validate_password_dictionary_file_words_count">
       </a>
       <a class="link" href="validate-password-options-variables.html#statvar_validate_password_dictionary_file_words_count">
        <code class="literal">
         validate_password_dictionary_file_words_count
        </code>
       </a>
      </p>
      <a class="indexterm" name="idm46045241094880">
      </a>
      <a class="indexterm" name="idm46045241093760">
      </a>
      <p>
       This
       <code class="literal">
        validate_password
       </code>
       plugin status
              variable is deprecated; expect it to be removed in a
              future version of MySQL. Use the corresponding
       <a class="link" href="validate-password-options-variables.html#statvar_validate_password.dictionary_file_words_count">
        <code class="literal">
         validate_password.dictionary_file_words_count
        </code>
       </a>
       status variable of the
       <code class="literal">
        validate_password
       </code>
       component instead.
      </p>
     </li>
    </ul>
   </div>
  </div>
 </div>
 <br/>
</div>
