Unable to Create Database in SiteWorx After Replacing MariaDB with MySQL 8

How the Issue Manifests

  • After replacing the default MariaDB instance with MySQL 8, attempting to create a database in SiteWorx fails with the following error:

    mysql database password error

Cause of the Issue

  • The most common cause of this issue is that the password requirements set in MySQL 8 include a special character, which the automated passwords generated by InterWorx do not include

  • The custom password provided does not meet the requirements set in MySQL 8

How to Resolve

  1. Log in to the server at the CLI as root, either via SSH or from the terminal

  2. Log into the server MariaDB/MySQL instance as the mysql root user with either of the following:

    mysql
    

    or

    mysql -u root -p
    
  3. Check the settings for password requirements with the following:

    SHOW VARIABLES LIKE 'validate_password%';
    

    If there are password variables set, the output will be similar to the following example:

    mysql> SHOW VARIABLES LIKE 'validate_password%';
    +-------------------------------------------------+--------+
    | Variable_name                                   | Value  |
    +-------------------------------------------------+--------+
    | validate_password.changed_characters_percentage | 0      |
    | validate_password.check_user_name               | ON     |
    | validate_password.dictionary_file               |        |
    | validate_password.length                        | 8      |
    | validate_password.mixed_case_count              | 1      |
    | validate_password.number_count                  | 1      |
    | validate_password.policy                        | MEDIUM |
    | validate_password.special_char_count            | 1      |
    +-------------------------------------------------+--------+
    8 rows in set (0.01 sec)
    
    mysql>
    
  4. Update the corresponding password validation variable, replacing {variable} and {setting} with the corresponding information:

    SET GLOBAL validate_password.{variable} = {setting};
    

    For example, to make it so that so special characters are no longer required as part of the password, use the following command:

    mysql> SET GLOBAL validate_password.special_char_count = 0;
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> SHOW VARIABLES LIKE 'validate_password%';
    +-------------------------------------------------+--------+
    | Variable_name                                   | Value  |
    +-------------------------------------------------+--------+
    | validate_password.changed_characters_percentage | 0      |
    | validate_password.check_user_name               | ON     |
    | validate_password.dictionary_file               |        |
    | validate_password.length                        | 8      |
    | validate_password.mixed_case_count              | 1      |
    | validate_password.number_count                  | 1      |
    | validate_password.policy                        | MEDIUM |
    | validate_password.special_char_count            | 0      |
    +-------------------------------------------------+--------+
    8 rows in set (0.01 sec)
    
  5. Exit MySQL

    exit
    

If the above does not resolve the issue, please submit a ticket to support.interworx.com for further assistance.