Interworx: MariaDB and MySQL troubleshooting
If you’re encountering a replyCode: 500 replyText: Generic Server Issue replyData: null error message in the InterWorx control panel when attempting to create a SiteWorx MySQL/MariaDB database or database user, this guide will help you diagnose and resolve the problem. This error often points to an underlying issue with the database server’s user table. Note: This article is specifically for the MySQL/MariaDB instance that Interworx uses and not the MySQL/MariaDB instance that the websites use.
Symptom
When you try to create a new MySQL/MariaDB database or user via the SiteWorx interface, you see the following error:
replyCode: 500
replyText: Generic Server Issue
replyData: null
This generic error message indicates a problem on the server, which requires further investigation through the InterWorx logs.
Diagnosis: checking the InterWorx log
The first step is to examine the InterWorx log file to find more specific error details.
- Access your server via SSH.
- View the InterWorx log file. You can use a command like
tailorcat, butgrepcan also be useful if you know what you’re looking for. The main log file is located at/home/interworx/var/log/iworx.log. You might see log entries similar to the following around the time the error occurred: Code snippet==> /home/interworx/var/log/iworx.log <== 2022-11-22 14:01:24.05028 [v2o34i-ajam-lkv9-WEB] [EMERG] : BEGIN STACKTRACE 1 - from logAnother in IWorx_Exception : /siteworx/mysql/user : include/IWorx/Exception.php line 113 2022-11-22 14:01:24.05042 [v2o34i-ajam-lkv9-WEB] [INFO] : EXCEPTION: IWorx_Exception : /siteworx/mysql/user : include/IWorx/Exception.php line 114 2022-11-22 14:01:24.05053 [v2o34i-ajam-lkv9-WEB] [EMERG] : MySQL user name is empty. : /siteworx/mysql/user : include/IWorx/Exception.php line 115The key message here is:MySQL user name is empty.This indicates that your MySQL/MariaDB server has one or more user entries with a blank username. This often confuses InterWorx when it tries to manage databases and users.
Solution: removing empty MySQL/MariaDB users
To resolve this, you’ll need to access your MySQL/MariaDB server and remove any users that have a blank or empty User field.
- Log in to MySQL/MariaDB as the root user. Open a terminal or SSH session and connect to your database server: Bash
mysql -u root -pYou’ll be prompted for the MySQL/MariaDB root password. - Identify empty users. Once logged in, run the following SQL query to find users with an empty username. The
\Gat the end of the query formats the output for easier reading. SQLSELECT * FROM mysql.user WHERE User = ''\GYou might see output similar to this, indicating an empty user: SQL*************************** 1. row *************************** Host: localhost User: Password: Select_priv: N Insert_priv: N Update_priv: N Delete_priv: N Create_priv: N Drop_priv: N Reload_priv: N Shutdown_priv: N Process_priv: N File_priv: N Grant_priv: N References_priv: N Index_priv: N Alter_priv: N Show_db_priv: N Super_priv: N Create_tmp_table_priv: N Lock_tables_priv: N Execute_priv: N Repl_slave_priv: N Repl_client_priv: N Create_view_priv: N Show_view_priv: N Create_routine_priv: N Alter_routine_priv: N Create_user_priv: N Event_priv: N Trigger_priv: N Create_tablespace_priv: N Delete_history_priv: N ssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0 max_updates: 0 max_connections: 0 max_user_connections: 0 plugin: authentication_string: password_expired: N is_role: N default_role: max_statement_time: 0.000000Note: Pay close attention to theHostfield as well. You might have empty users associated withlocalhostor other hosts. - Remove the problematic user(s). Once you’ve identified the empty user(s), you need to remove them. Use the
DELETEstatement. Be very careful with this command, as deleting the wrong user can cause significant issues. For an empty user associated withlocalhost(as in the example above), the command would be: SQLDELETE FROM mysql.user WHERE User = '' AND Host = 'localhost';If there are empty users associated with other hosts (e.g.,%,127.0.0.1), you’ll need to run theDELETEcommand for each specific host, or use a more general command if appropriate (though specificity is safer). For example, to delete all users with an empty username regardless of the host: SQLDELETE FROM mysql.user WHERE User = '';Warning: Exercise extreme caution withDELETEcommands. Double-check yourWHEREclause. - Flush privileges. After deleting the user(s), you must reload the grant tables for the changes to take effect: SQL
FLUSH PRIVILEGES; - Exit MySQL/MariaDB. SQL
EXIT;
Verification
After completing these steps, try creating a MySQL/MariaDB database or user through the SiteWorx control panel again. The replyCode: 500 Generic Server Issue should now be resolved.
If you continue to experience issues or are uncomfortable performing these steps, please don’t hesitate to contact Liquid Web support for assistance.