How to Fix “Linked Tables Features Disabled” Error in phpMyAdmin 3.2.1: Complete Configuration Guide


3 views

When phpMyAdmin reports "The additional features for working with linked tables have been deactivated," it indicates missing or misconfigured phpMyAdmin configuration storage tables. The error typically appears when these special tables either don't exist or the connection parameters are incorrect.

Your config.inc.php needs these critical settings:

// Control user/password for phpMyAdmin advanced features
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'pmapassword';

// phpMyAdmin configuration storage settings
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$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]['designer_coords'] = 'pma__designer_coords';

Execute this SQL to verify your tables exist in the phpmyadmin database:

SHOW TABLES IN phpmyadmin;

You should see all tables prefixed with pma__. If any are missing, you'll need to recreate them using the create_tables.sql script included with phpMyAdmin.

For MySQL 5.7+, use these GRANT statements:

GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost';
GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Case 1: Tables exist but are empty. This is normal initially - they'll populate as you use features.

Case 2: Configuration gets overridden. Check for multiple config files with:

php -i | grep 'Loaded Configuration File'

Case 3: SELinux blocking access. Check with:

audit2allow -a

Enable debug mode by adding to config.inc.php:

$cfg['Debug'] = true;
ini_set('display_errors', 1);
error_reporting(E_ALL);

This will reveal any underlying MySQL connection issues.


When working with phpMyAdmin 3.2.1deb1, you might encounter the message: "The additional features for working with linked tables have been deactivated." This occurs when the control user doesn't have proper permissions or when the special phpMyAdmin configuration tables aren't properly set up in your database.

For advanced features to work, you need both proper configuration and database setup:

// Essential configuration directives in config.inc.php
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$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]['designer_coords'] = 'pma__designer_coords';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'pmapassword';

First, verify that the special tables exist in your designated phpMyAdmin database (default is 'phpmyadmin'):

SHOW TABLES FROM phpmyadmin;
-- Should return tables like:
-- pma__bookmark
-- pma__relation
-- pma__table_info
-- etc.

The control user (typically 'pma') needs specific privileges:

-- Grant necessary privileges to the control user
GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapassword';
GRANT SELECT (
  Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
  Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
  File_priv, Grant_priv, References_priv, Index_priv, Alter_priv
) ON mysql.user TO 'pma'@'localhost';
GRANT SELECT ON mysql.db TO 'pma'@'localhost';
GRANT SELECT ON mysql.host TO 'pma'@'localhost';
GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
  ON mysql.tables_priv TO 'pma'@'localhost';

Examine your config.inc.php for potential issues:

// Common pitfalls to check
1. Multiple $cfg['Servers'] entries causing conflicts
2. Blank passwords in controluser settings
3. Incorrect table name prefixes (pma__ vs phpmyadmin__)
4. Permissions on the config file (should be readable by web server)
5. Configuration being overridden by later includes

Add these temporary debugging lines to your config.inc.php:

error_reporting(E_ALL);
ini_set('display_errors', '1');
// Check if config values are being set properly
var_dump($cfg['Servers'][$i]['pmadb']);
var_dump($cfg['Servers'][$i]['relation']);
// Check database connection
$test = $dbi->tryQuery("SHOW TABLES FROM " . $cfg['Servers'][$i]['pmadb']);
var_dump($test);

If issues persist, try recreating the configuration database from scratch:

-- First drop existing tables if they exist
DROP DATABASE IF EXISTS phpmyadmin;
CREATE DATABASE phpmyadmin;
USE phpmyadmin;

-- Then run the create_tables.sql script from phpMyAdmin installation
-- Typically located at /usr/share/phpmyadmin/sql/create_tables.sql
SOURCE /usr/share/phpmyadmin/sql/create_tables.sql;

-- Verify tables were created
SHOW TABLES;

After fixing the configuration, verify everything works:

1. Reload phpMyAdmin
2. Check the status page (Home → More → Settings)
3. Test relation view in table structure
4. Verify SQL history is being recorded
5. Check if PDF schema export works