PhpMyAdmin advanced features issue
I am having trouble installing the latest changes on my MySQL / Apache / phpMyAdmin installation on Windows XP system. I am trying to get rid of all the error message in phpMyAdmin and I got rid of all of them except those related to "advanced features". The exact error message:
The additional features for working with linked tables have been deactivated. To find out why click here.
I've read the cause of the errors, but I'm missing something because I still can't get the warning to go away. Here's what I did:
Created a linked table infrastructure (default name "phpmyadmin") in phpMyAdmin statement and enabled "pmadb" in my "config.inc.php" file.
Defined (enabled) table names in my "config.inc.php" file (9 tables in total).
Created "controluser" and provided only Select privilages for phpMyAdmin instructions
Adjusted "controluser" pma and "controlpass" pmapass in "config.inc.php"
From what I can see, all this phpMyAdmin instruction gives on this topic and I cannot find any guides on the "advanced features" features in phpMyAdmin.
Any help would be appreciated and be careful, this is my first time working with MySQL / phpMyAdmin
And if there is some information you need to help me, please tell me what it is and I will get it for you.
EDIT: 4/30/2010
In an attempt to make it easier, I uninstalled everything (Apache, PHP, MySQL and phpMyAdmin) with the WAMP I just installed. I was hoping that the automatic configuration provided by WAMP would take care of my problem, but I have the EXACT PROBLEM! This warning annoys me, and it becomes a source of pride!
EDIT: 5/14/2010
Thanks everyone for your suggestions, but I found the answer to my question: Use XAMPP instead of WAMP. In less than 5 minutes I had XAMPP with NO ERRORS of any kind. XAMPP UI is much better. I suggest XAMPP to anyone disappointed with WAMP.
a source to share
After digressing from this topic, I applied the following SQL and viola! This is from the phpAdmin documentation under the linked tables section.
GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';
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,
Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
Execute_priv, Repl_slave_priv, Repl_client_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';
a source to share
Perhaps the problem is with account privileges - my local setup grants all privileges to the user / controller.
Here's what part of my config.inc.php looks like:
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'USER'; // MySQL user
$cfg['Servers'][$i]['password'] = 'PASSWORD'; // MySQL password (only needed
// with 'config' auth_type)
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
/* Select mysqli if your server has it */
$cfg['Servers'][$i]['extension'] = 'mysql';
/* User for advanced features */
$cfg['Servers'][$i]['controluser'] = 'USER';
$cfg['Servers'][$i]['controlpass'] = 'PASSWORD';
/* Advanced phpMyAdmin features */
$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]['designer_coords'] = 'pma_designer_coords';
and the corresponding portion of the privileges reported by phpmyadmin:
User Host Type Privileges Grant Action
-----------------------------------------------------------------------
USER % global ALL PRIVILEGES Yes Edit Privileges
USER localhost global ALL PRIVILEGES Yes Edit Privileges
This may not be the safest setting, but this is for an internal development machine (where I got tired of the warning too). I note that one of the solutions suggested for the Debian version was to give the pma user almost all privileges, not just SELECT.
Obviously I replaced USER and PASSWORD for my own user and password.
a source to share
The relevant section of the PMA code PMA__getRelationsParam
in libraries/relation.lib.php
. Besides confirming the existence of 8 tables, it checks if the table has pma_column_info
rows with mimetype
, transformation
and transformation_options
. See the PHPMyAdmin manual for more information on how to set up this table. Alternatively, you can set PmaNoRelation_DisableWarning if you don't need this feature and just want to get rid of the warning.
Edit: you can debug the source to find the exact problem. Add to
var_dump(compact('mime_field_mimetype', 'mime_field_transformation', 'mime_field_transformation_options'));
var_dump($cfgRelation);
die;
to the end of the function PMA__getRelationsParam
, just before the return statement, then load the PMA and see which test is false.
a source to share
I recently had the same issue with phpMyAdmin 4.2.9 from the REMI package repository on CentOS 6.5.
After a lot of annoying digging in the wrong places, I finally found out that it was my own mistake because I changed my Apache
WEB server to nginx + php-fpm
, after which I was unable to set the permissions correctly.
The problem was that phpMyAdmin was unable to access the config in /etc/phpMyAdmin/config.inc.php
My solution was to change the directory owner group /etc/phpMyAdmin
to the primary user group where the process was running php-fpm
.
Hope this helps anyone ...
a source to share