"Підключення для контролера, як визначено у вашій конфігурації, не вдалося" з phpMyAdmin в XAMPP


127

Щойно я встановив XAMPP на своїй машині Windows XP, і я отримав помилку:

Не вдалося підключити контролер, як визначено у вашій конфігурації.

Перш ніж я встановив XAMPP, у мене була встановлена ​​база даних MySQL, і вона мала пароль. Я змінив і ввів пароль у config.inc.php для MySQL, і отримав цю помилку:

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

Коли я намагаюся отримати доступ до index.php, мені здається, що з установкою XAMPP щось не так. Що я можу зробити, щоб виправити цю проблему?


19
ІМХО подібні питання досить часто зустрічаються і витрачається багато часу, щоб їх виправити. Крім того, за допомогою "визначеного кола проблем", його дискусійним є питання, якщо ми можемо поставити таку задачу під "м'яким інструментом, який зазвичай використовують програмісти" або " практична, відповідальна проблема, яка є унікальною для м'якого розвитку ". Тому я прошу ветеранів СУ уважно розглянути таку посаду перед відміткою" поза темою ". ТАК стає надійним, єдиним пунктом призначення, щоб отримати відповідь на проблему програмування від людей, які зіткнулися і вирішили її. Тому програмісту було б корисно отримати тут точну відповідь, ніж шукати інших для такої проблеми.
Декстер

Відповіді:


243
  1. Відкрийте phpMyAdmin у браузері та увійдіть як корінь.
  2. Створіть базу даних під назвою phpmyadmin
  3. Створіть зателефонованого користувача pmaта встановіть "хост" на ім'я хоста чи IP-адресу вашого веб-сервера (якщо веб-сервер та MySQL використовуються в одному полі localhost), зробіть відмітку про пароль та надайте новому користувачеві повний контроль над phpmyadminбази даних. Рекомендується, щоб цей користувач не мав доступу до нічого, крім цієї бази даних.
  4. Перейдіть до каталогу встановлення phpMyAdmin, де ви повинні знайти підкаталог під назвою sql.
  5. У sqlвас буде знайти файл з ім'ям create_tables.sql. Відкрийте його в текстовому редакторі.
  6. У phpMyAdmin виберіть phpmyadminбазу даних і натисніть на вкладку "SQL".
  7. Скопіюйте / вставте весь текст create_tables.sqlу текстове поле та запустіть запит.
  8. Відкрийте config.inc.phpфайл у каталозі установки phpMyAdmin та додайте наступні рядки (або змініть існуючі налаштування, якщо вони вже є):

    $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. Збережіть і закрийте файл.

ВАЖЛИВО - PMA завантажує конфігурацію при вході в систему, оцінює її і зберігає її в дані сеансу, щоб повідомлення не зникало, поки ви цього не зробите:

  1. Вийдіть із phpMyAdmin та увійдіть знову

Проблема вирішена.


3
+1 для "виходу та повернення в систему". Я витратив п'ять хвилин, не розуміючи, що повинен був це зробити.
Матвій Г

1
@MatthewG Так, конфігураційний файл завантажується у ваш сеанс у точці, коли ви увійдете в систему, щоб скоротити введення / виведення диска, так що ^^ застосовується до будь-яких змін, які ви можете внести у файл конфігурації PMA
DaveRandom

14
Чомусь моя версія phpmyadmin має назви таблиць як "pma__bookmark" і так далі з двома "підкресленнями". Якщо хтось має те саме, то вам слід редагувати "config.inc.php" відповідно. І BTW файл конфігурації знаходиться в каталозі "/ etc / phpmyadmin" в Ubuntu
ajaybc

6
У Ubuntu 14.04 місце для create_tables.sql знаходиться у /usr/share/doc/phpmyadmin/examples/create_tables.sql.gz
karlingen

5
Це відмінна відповідь (100- +я від мене;)). Тим НЕ менше, я не знайшов приклади каталогу , в якому вказав на кроці 4. Замість цього було тут: /usr/share/doc/phpmyadmin/examplesі там я знайшов стислий файл SQL: create_tables.sql.gz.
Маджід Фуладпур

134

Якщо ви потрапили сюди і використовуєте Debian / Ubuntu (або будь-який інший дистрибутив на базі dpkg), виконайте таку команду:

sudo dpkg-reconfigure phpmyadmin

Пакет phpmyadmin містить скрипт для виконання цієї операції для вас, все що потрібно - це користувач з дозволами. sudo не потрібен, якщо ви, звичайно, увійшли як root.

EDIT: Можливо, варто спробувати скинути поточного користувача phpmyadmin.


2
Це працювало для мене, я просто повинен був перевстановити базу даних, яку він запитував. Дякую. (Ubuntu 12.04)
ino

17
Для налаштування цієї роботи мені довелося набрати "pma" замість "phpmyadmin" для керуючого користувача.
Гарделл

1
Дякую, ти врятував мені день :) hehe
Джеремі Дікайр

2
Перший викид користувача «phpmyadmin» та запуску «sudo dpkg-переконфігуруйте phpmyadmin» після того, як працював для мене. Дякую!
bshea

1
Примітка: це видалить усі налаштовані сервери, якщо такі є.
Раптор

23

Просто прокоментуйте кодові блоки "Користувач для розширених функцій" та "Розширені функції phpMyAdmin" config.inc.php.


Будь-яке пояснення цьому? Як і чому це працює?
Huey

1
@Ben: Іноді це все має значення;)
серія

У яких файлах .... Це так малоінформативно! Але всі розуміють, тому я відчуваю себе дурним і не в змозі виправити це ось подвійна програш!
Джеймі Хатбер

2
Це було б config.inc.php
Rocoty

1
Не існує нічого подібного User for advanced features" and "Advanced phpMyAdmin featuresвсерединіphpmyadmin/config.inc.php
AN

11

Нещодавно ви змінили свій пароль root на MySQL Server? Якщо відповідь ТАК, то це причина помилки / попередження всередині консолі phpMyAdmin. Щоб усунути проблему, просто відредагуйте файл config-db.php phpMyAdmin та встановіть правильний пароль бази даних.

Перша відповідь занадто сильно псує мою думку, а друга відповідь не спрацювала для мене. Так:

На серверах на базі Linux файл зазвичай розташований у:

/etc/phpmyadmin/config-db.php

або:

/etc/phpMyAdmin/config-db.php

Приклад: (Мій файл виглядав так, і я змінив користувача з phpmyadminна admin, ім’я користувача, яке я створив для підтримки своєї бази даних через phpmyadmin, і ввів відповідний пароль.

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

кредити: http://tehnoblog.org/phpmyadmin-error-connection-for-controluser-as-defined-in-your-configuration-failed/


4

Це працювало для мене з phpmyadmin під Ubuntu 16.04:

Я відредагував /etc/phpmyadmin/config.inc.php і змінив наступні 2 рядки:

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

3

На Убунбту.

Повідомлення Бена близьке, але це не основний пароль, а проблема, яку я виявив - створив пароль для бази даних phpmyadmin, коли встановив його. Цей пароль не переноситься в установку на ubuntu, тому змінна $ dbpass = ''; у файлі налаштувань бази даних порожній, а не встановлений вами пароль.

  1. Щоб перевірити, чи є у вас правильний пароль при вході в командний рядок на mysql, використовуючи таку команду: mysql -u phpmyadmin -p спробуйте порожній пароль. Я виявив, що мені було відмовлено у доступі, введіть команду ще раз, використовуючи пароль, встановлений під час встановлення. Якщо він увійшов у вас, знайте, що таке пароль.
  2. Редагувати /etc/phpadmin/config-db.php та змінити $ dbpass = ''; до $ dbpass = 'Ваш пароль'; і збережіть файл.
  3. Редагувати /etc/dbconfig-common/phpmyadmin.conf змінити dbc_dbpass = '' ; to dbc_dbpass = 'Ваш пароль'; і збережіть файл. Закрийте веб-переглядач і перезавантажте, тепер ви побачите, що повідомлення пішло.


0

Проблема полягає в тому, що пароль керування користувачем PhpMyAdmin (зазвичай: pma) пароль не відповідає паролю mysql user: pma (той самий користувач).

Щоб виправити це, 1. Встановіть потрібний пароль для користувача pma тут:

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

$ cfg ['Сервери'] [$ i] ['controlpass'] = 'your_new_phpmyadmin_pass';

(має бути як у рядку 32)

Потім перейдіть до mysql, увійдіть як root, перейдіть до: (я використовував phpmyadmin, щоб перейти сюди)

База даних: mysql »Таблиця: користувач

Редагувати користувача: pma

Виберіть "Пароль" зі списку функцій (лівий стовпець) і встановіть "your_new_phpmyadmin_pass" у правій колонці та натисніть кнопку "Перейти".

Перезавантажте сервер mysql.

Тепер повідомлення має зникнути.


0

Я просто вношу зміни у файл config.inc.php. Помилка пароля в цьому посиланні $ cfg ['Сервери'] [$ i] ['пароль'] = 'Ваш пароль'; і тепер його прекрасно спрацювало.


відредагуйте своє запитання та додайте більше інформації. Це низької якості.
Mathews Sunny

Вище є роздільна здатність, я не дотримувався вищезазначених кроків. Я просто заходжу в каталог config.inc.php і відкриваю цей файл config.inc.php у блокноті і змінив цей рядок $ cfg ['Сервери'] [$ i] ['пароль'] = 'Ваш пароль'
Mohit Шарма

Я побачив, як згадується пароль, що це неправильно, і я знову поставив правильний пароль і зберег його та запустив phpmyadmin знову, і він працює належним чином зараз
Mohit Sharma

0

на ubuntu /etc/phpmyadmin/config-db.php

переконайтеся, що пароль відповідає вашому config.inc.php для керуючого користувача

також для міхура занадто коротка помилка

редагуйте /var/lib/phpmyadmin/blowfish_secret.inc.php та зробіть ключ довшим


0

на ubuntu 18.04 в etc/phpmyadmin/config.inc.php коментарі весь блок

Необов’язково: користувач для розширених функцій


-1

Щойно встановивши XAMPP сьогодні, я вирішив використовувати інший порт за замовчуванням для mysql, що було жахливо. Обов’язково додайте ці рядки до phpMyAdmin config.inc.php:

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

$cfg['Servers'][$i]['port'] = 'port';`
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.