phpMyAdmin configuration storage is not fully configured

phpMyAdmin Config Storage Not Fully Configured – Quick Fix

Database Errors Beginner 👁 10 views 📅 Jun 24, 2026

That warning means phpMyAdmin can't set up its internal tables. Most times it's a missing database or wrong user permissions. Here's how to shut it up fast.

Why You're Seeing This

You just installed phpMyAdmin, logged in, and boom – there's a yellow warning at the bottom of the screen: "phpMyAdmin configuration storage is not fully configured".

What's going on? phpMyAdmin tries to create a set of internal tables (like pma__bookmark, pma__relation, etc.) to store your settings, bookmarks, and query history. If those tables don't exist, or the database user doesn't have permission to use them, you get this warning.

The culprit here is almost always one of three things:
1. The phpmyadmin database wasn't created during install.
2. The database user you're logging in with doesn't have access to that database.
3. The config file (config.inc.php) has wrong credentials.

Let's fix it. Start with the fastest fix. If it doesn't work, move to the next.

Fix #1: 30-Second Fix – Just Create the Database Manually

This is the simplest fix and works about 60% of the time. You just need to run one SQL command.

  1. Log into MySQL or MariaDB directly (not through phpMyAdmin – use the command line or another tool like MySQL Workbench).
  2. Run this command to create the database if it doesn't exist:
    CREATE DATABASE IF NOT EXISTS phpmyadmin;
  3. Then run the setup SQL script that ships with phpMyAdmin. The file is usually called create_tables.sql. Find it:
    mysql -u root -p < /usr/share/phpmyadmin/sql/create_tables.sql

    On Windows, the path is something like C:\xampp\phpMyAdmin\sql\create_tables.sql.
  4. That's it. Reload phpMyAdmin in your browser. The warning should be gone.

Why this works: Some installers skip creating the database. Running the script creates all the tables phpMyAdmin needs.

Fix #2: 5-Minute Fix – Check User Permissions

If Fix #1 didn't work, the database exists but your user can't access it. This happens a lot when you use a non-root user.

  1. Log into MySQL as root:
    mysql -u root -p
  2. Check if the phpmyadmin database exists:
    SHOW DATABASES LIKE 'phpmyadmin';
    If it doesn't show up, go back to Fix #1.
  3. If it exists, grant all privileges on that database to the user you're using in phpMyAdmin. Replace 'youruser'@'localhost' with your actual username and host:
    GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'youruser'@'localhost';
    FLUSH PRIVILEGES;
  4. Log out of MySQL (EXIT;), then go back to phpMyAdmin and refresh. The warning should clear.

Real-world tip: If you're using the root user in phpMyAdmin (bad idea, I know, but people do it), make sure root has a password set. Some default configs have root with no password, and phpMyAdmin won't let you use the storage tables securely.

Fix #3: 15-Minute Fix – Edit config.inc.php

If the first two fixes didn't work, the issue is in your config file. phpMyAdmin doesn't know where to find the storage database.

  1. Locate your config.inc.php file. Common locations:
    • Linux: /etc/phpmyadmin/config.inc.php or /usr/share/phpmyadmin/config.inc.php
    • Windows (XAMPP): C:\xampp\phpMyAdmin\config.inc.php
    • Windows (WAMP): C:\wamp64\apps\phpmyadminX.X.X\config.inc.php
  2. Look for these lines. If they're missing or commented out, add them:
    $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
    $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
    $cfg['Servers'][$i]['relation'] = 'pma__relation';
    $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
    $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
    $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
    $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
    $cfg['Servers'][$i]['history'] = 'pma__history';
    $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
    $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
    $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
    $cfg['Servers'][$i]['recent'] = 'pma__recent';
    $cfg['Servers'][$i]['favorite'] = 'pma__favorite';
    $cfg['Servers'][$i]['users'] = 'pma__users';
    $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
    $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
    $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
    $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
    $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
    $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
  3. Also check the user and password settings. You need a dedicated user for the storage database. Add or update these lines:
    $cfg['Servers'][$i]['controluser'] = 'pma';
    $cfg['Servers'][$i]['controlpass'] = 'yourpassword';

    Replace pma and yourpassword with a real user that has access to the phpmyadmin database.
  4. Save the file, restart your web server (Apache or Nginx), and refresh phpMyAdmin.

Still Seeing the Warning?

If none of these fixed it, you've got a deeper problem. Here's what I'd check next:

  • Table prefix mismatch: In older phpMyAdmin versions, the table prefix was pma_ (single underscore). Newer versions use pma__ (double underscore). If you imported an old create_tables.sql, you might have the wrong prefixes. Run the new script from your phpMyAdmin version's sql/ folder.
  • Web server can't read the config file: Check file permissions. On Linux, chmod 640 config.inc.php and make sure it's owned by the web server user (like www-data).
  • MySQL 8 caching_sha2_password: If you're on MySQL 8 and using an older phpMyAdmin (like 4.x), the auth plugin might break. Upgrade phpMyAdmin to 5.x, or change the user's auth plugin to mysql_native_password:
    ALTER USER 'pma'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';

That's it. This warning is annoying but harmless. If you skip it, phpMyAdmin still works – you just lose bookmarks and query history. But if you want it gone, these three fixes cover 99% of cases.

Was this solution helpful?