Configure phpMyAdmin

I am using the instructions at LAMP setup to configure a localhost. Toward the end of that file, there are instructions for configuring phpMyAdmin. The /etc/phpMyAdmin/ in the version I have is somewhat different from those in the instructions. Here is the code from what I have:

 * phpMyAdmin configuration storage settings.
$cfg'Servers']$i]'controlhost']         = '';

// MySQL control user settings (this user must have read-only
// access to the "mysql/user" and "mysql/db" tables).
// The controluser is also used for all relational features (pmadb)
$cfg'Servers']$i]'controluser']         = '';

// The password needed for the controluser to login
// (see $cfg'Servers']$i]'controluser'])
$cfg'Servers']$i]'controlpass']         = '';

// Database used for Relation, Bookmark and PDF Features
// (see _docdir/examples/create_tables.sql)
//   - leave blank for no support
//     DEFAULT: 'phpmyadmin'
$cfg'Servers']$i]'pmadb']               = '';

// Bookmark table
//   - leave blank for no bookmark support
//     DEFAULT: 'pma_bookmark'
$cfg'Servers']$i]'bookmarktable']       = '';

// table to describe the relation between links (see doc)
//   - leave blank for no relation-links support
//     DEFAULT: 'pma_relation'
$cfg'Servers']$i]'relation']            = '';

// table to describe the display fields
//   - leave blank for no display fields support
//     DEFAULT: 'pma_table_info'
$cfg'Servers']$i]'table_info']          = '';

// table to describe the tables position for the PDF schema
//   - leave blank for no PDF schema support
//     DEFAULT: 'pma_table_coords'
$cfg'Servers']$i]'table_coords']        = '';

// table to describe pages of relationpdf
//   - leave blank if you don't want to use this
//     DEFAULT: 'pma_pdf_pages'
$cfg'Servers']$i]'pdf_pages']           = '';

// table to store column information
//   - leave blank for no column comments/mime types
//     DEFAULT: 'pma_column_info'
$cfg'Servers']$i]'column_info']         = '';

// table to store SQL history
//   - leave blank for no SQL query history
//     DEFAULT: 'pma_history'
$cfg'Servers']$i]'history']             = '';

// Table to store user interface enhancement data.
//   - Leave blank to disable.
//     DEFAULT: 'pma_table_uiprefs'
$cfg'Servers']$i]'table_uiprefs']       = 'pma_table_uiprefs';

// Table to store version/change tracking data
//   - leave blank to disable
//     DEFAULT: 'pma_tracking'
$cfg'Servers']$i]'tracking']            = 'pma_tracking';

// Table in which to store information for the designer feature.
//     DEFAULT: 'pma_designer_coords'
$cfg'Servers']$i]'designer_coords']     = 'pma_designer_coords';

Should I use the default values suggested in the comments or the ones in the instructions?

What is the best practice for naming the controlhost and controluser?


The instructions at are new to me, though I’ve installed phpmyadmin many time on various distributions.

My opinion is the instructions / recommendations there are most applicable if you wish to create a specific phpmyadmin user, rather than use the root mysql user. If you would rather do so, then following the instructions should be fine - though I would recommend perhaps making a backup copy of and, if you so feel like it, the mysql database prior to executing the grant statements.

If you are simply going to use phpmyadmin locally, and do not need to worry about giving someone else the mysql root password, then the steps on the page may not apply to your situation.

The remaining recommendations on that page (setting the various options) are will not prevent phpmyadmin from working, but when you log in you will see a message “The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. To find out why click here.”, you can read the documentation for each of them and decide if you would like to modify them in the conf.

Thank you for your informative reply.

If I am reading between the lines correctly, following the instructions would make it possible to give someone access to phpMyAdmin without giving them access to MySQL. Is that correct?

In my case, it seems to work fine as it was installed if I log in with the MySQL password. I work alone. Additional passwords and usernames are just a pain in the neck. I think I will just leave it as it is, unless there is some compelling reason to change it.

Again, Thank you.


Yep, that whole point of the instructions there are to limit access for a non-root mysql user. If it is just you, I personally would not worry about it.