"Connection for controluser as defined in your configuration failed" with phpMyAdmin in XAMPP

PhpPhpmyadminXampp

Php Problem Overview


I have just installed XAMPP on my Windows XP machine, and I get an error saying:

> Connection for controluser as defined in your configuration failed.

Before I installed XAMPP, I had a MySQL database installed and it had a password. I changed and put the password in config.inc.php for MySQL, and I got this error:

<?php
if (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) {
	$uri = 'https://';
} else {
	$uri = 'http://';
}
$uri .= $_SERVER['HTTP_HOST'];
header('Location: '.$uri.'/xampp/');
exit;
?>

When I try to access index.php, it seems like something is wrong with the XAMPP installation. What can I do to fix this problem?

Php Solutions


Solution 1 - Php

  1. Open phpMyAdmin in a browser and log in as root.

  2. Create a database called phpmyadmin

  3. Create a user called pma and set the "host" to the hostname or IP address of your web server (if the web server and MySQL are on the same box use localhost), make a note of the password, and grant the new user full control over the phpmyadmin database. It is recommended that this user does not have access to anything other than this database.

  4. Go to the phpMyAdmin installation directory, where you should find a sub-directory called sql.

  5. In sql you will find a file called create_tables.sql. Open it in a text editor.

  6. In phpMyAdmin, select the phpmyadmin database and click on the "SQL" tab.

  7. Copy/paste the entire text from create_tables.sql into the text box, and run the query.

  8. Open the config.inc.php file in the phpMyAdmin install directory, and add the following lines (or change the existing settings if they are already there):

     $cfg['Servers'][1]['pmadb'] = 'phpmyadmin';
     $cfg['Servers'][1]['controluser'] = 'pma';
     $cfg['Servers'][1]['controlpass'] = '<your password>';
    
     // Note: The list below may grow as PMA evolves and more control tables are added
     // Use your common sense! Don't just blindly copypasta, look at what it means!
     $cfg['Servers'][1]['bookmarktable'] = 'pma_bookmark';
     $cfg['Servers'][1]['relation'] = 'pma_relation';
     $cfg['Servers'][1]['userconfig'] = 'pma_userconfig';
     $cfg['Servers'][1]['table_info'] = 'pma_table_info';
     $cfg['Servers'][1]['column_info'] = 'pma_column_info';
     $cfg['Servers'][1]['history'] = 'pma_history';
     $cfg['Servers'][1]['recent'] = 'pma_recent';
     $cfg['Servers'][1]['table_uiprefs'] = 'pma_table_uiprefs';
     $cfg['Servers'][1]['tracking'] = 'pma_tracking';
     $cfg['Servers'][1]['table_coords'] = 'pma_table_coords';
     $cfg['Servers'][1]['pdf_pages'] = 'pma_pdf_pages';
     $cfg['Servers'][1]['designer_coords'] = 'pma_designer_coords';
    
  9. Save and close the file.

IMPORTANT - PMA loads the config on login, evaluates it and stores it into the session data so the message will not disappear until you do this:

  1. Log out of phpMyAdmin and log in again

Problem solved.

Solution 2 - Php

If you got here and you are using Debian/Ubuntu (or any other dpkg based distro), execute the following command:

sudo dpkg-reconfigure phpmyadmin

The phpmyadmin package contains the script to perform this operation for you, all it needs is a user with permissions. sudo is not required if you're logged in as root, of course.

EDIT: It might be worth trying to drop the current phpmyadmin user.

Solution 3 - Php

Just comment out the whole "User for advanced features" and "Advanced phpMyAdmin features" code blocks in config.inc.php.

Solution 4 - Php

Have you recently changed your MySQL Server root password? If answer is YES, than this is the cause of the error / warning inside phpMyAdmin console. To fix the problem, simply edit your phpMyAdmin’s config-db.php file and setup the proper database password.

First answer is messing too much in my view and second answer did not work for me. So:

In Linux-based servers the file is usually located in:

/etc/phpmyadmin/config-db.php

or:

/etc/phpMyAdmin/config-db.php

Example: (My File looked like this and I changed the user fromphpmyadmin to admin, the username I created for maintaining my database through phpmyadmin, and put in the appropriate password.

$dbuser='phpmyadmin';
$dbpass=''; // set current password between quotes ' '
$basepath='';
$dbname='phpmyadmin';
$dbserver='';
$dbport='';
$dbtype='mysql';

credits: http://tehnoblog.org/phpmyadmin-error-connection-for-controluser-as-defined-in-your-configuration-failed/

Solution 5 - Php

This worked for me with phpmyadmin under Ubuntu 16.04:

I edited /etc/phpmyadmin/config.inc.php and changed the following 2 lines:

$cfg['Servers'][$i]['controluser'] = 'root'; 
$cfg['Servers'][$i]['controlpass'] = 'thepasswordgiventoroot'; 

Solution 6 - Php

On Ubunbtu.

Ben's message is close but it's not the root password that is the problem, the problem I found was I had created a password for the phpmyadmin database when I installed it. This password is not carried into the installation on ubuntu so the variable $dbpass=''; in the database settings file is empty and not the password you set.

  1. To check you have the right password at the command line login to mysql using the following command: mysql -u phpmyadmin -p try a blank password I found I got access denied, enter the command again using the password you set during installation. If it logs in you now know what the password is.
  2. Edit /etc/phpadmin/config-db.php and change $dbpass=''; to $dbpass='Your Password'; and save the file.
  3. Edit /etc/dbconfig-common/phpmyadmin.conf change dbc_dbpass=''; to dbc_dbpass='Your Password'; and save the file. Close your browser and reload you will now find the message has gone way.

Solution 7 - Php

"For me to make it work again I just deleted the files

ib_logfile0 and

ib_logfile1 .

from :

/Applications/MAMP/db/mysql56/ib_logfile0 "

On XAMPP its Xampp/xamppfiles/var/mysql

Got this from https://stackoverflow.com/questions/27905049/php-warning-mysqli-connect-hy000-2002-connection-refused

Solution 8 - Php

This worked for me with phpmyadmin under Ubuntu 16.04:

I edited /etc/phpmyadmin/config.inc.php and changed the following 2 lines:

$cfg['Servers'][$i]['controluser'] = 'pma'; 
$cfg['Servers'][$i]['controlpass'] = 'pass pma'; 

Solution 9 - Php

on ubuntu /etc/phpmyadmin/config-db.php

make sure the password matches your config.inc.php for the control user

also for the blowfish too short error

edit /var/lib/phpmyadmin/blowfish_secret.inc.php and make the key longer

Solution 10 - Php

The problem is that PhpMyAdmin control user (usually: pma) password does not match the mysql user: pma (same user) password.

To fix it,

  1. Set the password you want for user pma here:

> "C:\xampp\phpMyAdmin\config.inc.php"

> $cfg['Servers'][$i]['controlpass'] = 'your_new_phpmyadmin_pass';

> (should be like on line 32)

Then go to mysql, login as root, go to: (I used phpmyadmin to go here) > Database: mysql »Table: user

Edit the user: pma

Select "Password" from the function list (left column) and set "your_new_phpmyadmin_pass" on the right column and hit go.

Restart mysql server.

Now the message should disappear.

Solution 11 - Php

I just simply make changes on config.inc.php file. There is password in error in this link $cfg['Servers'][$i]['password'] = 'your password '; and now its perfectly worked .

Solution 12 - Php

on ubuntu 18.04 in etc/phpmyadmin/config.inc.php comment all the block

Optional: User for advanced features

Solution 13 - Php

on ubuntu, these steps worked for me...

1. sudo gedit /etc/phpmyadmin/config.inc.php.

2. uncomment[remove(/)]  following lines :-

    $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;

3. comment[add(/)] following lines :-     

   //$cfg['Servers'][$i]['controluser'] = $dbuser;
   //$cfg['Servers'][$i]['controlpass'] = $dbpass;

Solution 14 - Php

Having just installed the XAMPP today, I decided to use a different default port for mysql, which was horrible. Make sure to add these lines to the phpMyAdmin config.inc.php:

$cfg['Servers'][$i]['host'] = 'localhost';

$cfg['Servers'][$i]['port'] = 'port';`

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser1410081View Question on Stackoverflow
Solution 1 - PhpDaveRandomView Answer on Stackoverflow
Solution 2 - PhpOr CohenView Answer on Stackoverflow
Solution 3 - PhpstreakView Answer on Stackoverflow
Solution 4 - PhpbombenView Answer on Stackoverflow
Solution 5 - PhpDominique H.View Answer on Stackoverflow
Solution 6 - PhpClive WiView Answer on Stackoverflow
Solution 7 - PhpHelper -Josef KaseraView Answer on Stackoverflow
Solution 8 - PhpMohammad moein aghtaeiView Answer on Stackoverflow
Solution 9 - PhpRoyceView Answer on Stackoverflow
Solution 10 - PhpTarikView Answer on Stackoverflow
Solution 11 - PhpMohit SharmaView Answer on Stackoverflow
Solution 12 - PhpboazView Answer on Stackoverflow
Solution 13 - PhpAahadView Answer on Stackoverflow
Solution 14 - PhpDavidView Answer on Stackoverflow