Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is phpMyAdmin not completely configured?

With a localhost installation of MySQL 5.6.20 and phpMyAdmin 4.2.7.1 under Mac OS X 10.9.4, I used phpmyadmin/examples/create_tables.sql, edited so as activate the needed GRANT SELECT, INSERT, DELETE, UPDATE on phpmyadmin to my control user.

With the config.inc.php shown below, when I start phpMyAdmin, whether as root or as that control user, I get an error: The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. To find out why click here.

That link displays a long list of configuration settings as not OK, including:

$cfg['Servers'][$i]['relation'] ... 
$cfg['Servers'][$i]['table_info'] ..
$cfg['Servers'][$i]['table_coords'] ...

$cfg['Servers'][$i]['userconfig'] ...

But I did set these in config.inc.php.

In the main phpMyadmin window, in the display of queries executed, I see:

[error] => Table 'phpmyadmin.pma_recent' doesn't exist
[count] => 1
[query] =>  SELECT `tables` FROM `phpmyadmin`.`pma_recent` WHERE `username` = 'root'

Yet when I run mysql -u root -p from command line, then use phpmyadmin;, and show tables;, I obtain list:

+-----------------------+
| Tables_in_phpmyadmin  |
+-----------------------+
| pma__bookmark         |
| pma__column_info      |
| pma__designer_coords  |
| pma__history          |
| pma__navigationhiding |
| pma__pdf_pages        |
| pma__recent           |
| pma__relation         |
| pma__savedsearches    |
| pma__table_coords     |
| pma__table_info       |
| pma__table_uiprefs    |
| pma__tracking         |
| pma__userconfig       |
| pma__usergroups       |
| pma__users            |
+-----------------------+

What's wrong?

(I did see the "answer" at phpMyAdmin - config.inc.php configuration?, but it's of no help.)

Here's the start of config.inc.php, with some comments stripped and sensitive information obscured.

<?php
$cfg['blowfish_secret'] = 'my secret';

/* Servers configuration */
$i = 0;
/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'my localhost';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '/tmp/mysql.sock';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';

/*
 * phpMyAdmin configuration storage settings.
 */

/* User used to manipulate with storage */
$cfg['Servers'][$i]['controluser'] = 'mypmacontroluser';
$cfg['Servers'][$i]['controlpass'] = 'mypassword';

/* Storage database and tables */
$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]['designer_coords'] = 'pma_designer_coords';
$cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';
$cfg['Servers'][$i]['recent'] = 'pma_recent';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';

/* End of servers configuration */
like image 390
murray Avatar asked Aug 25 '14 21:08

murray


2 Answers

I do not know phpMyAdmin, so I can not tell how the setting is supposed to be, but in any case, just looking at the question alone, the table are not consistently named here:

$cfg['Servers'][$i]['recent'] = 'pma_recent';

is spelled with one (1) underscore.

The table itself, as per SHOW TABLES, is spelled with two (2) underscores.

+-----------------------+
| Tables_in_phpmyadmin  |
+-----------------------+
...
| pma__recent           |

So yes, MySQL will complain that:

Table 'phpmyadmin.pma_recent' doesn't exist

because the table, really, does not exist.

like image 191
Marc Alff Avatar answered Oct 18 '22 20:10

Marc Alff


Don't create that file by hand. Use the setup wizard through the browser to create a valid config.

like image 38
Ralf Avatar answered Oct 18 '22 19:10

Ralf