«Соединение для управляющего пользователя, как определено в вашей конфигурации, не удалось» с 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 что-то не так. Что я могу сделать, чтобы решить эту проблему?

Makoto
источник
19
ИМХО такого рода вопросы довольно много общего и много времени впустую , чтобы исправить them.Also по «определенным кругом проблем», его спорно , если мы можем поставить такой questn под «мягкой. Инструмент обычно используется программистами» или «является практическая проблема, на которую можно дать ответ, которая является уникальной для мягкой разработки ». Поэтому я прошу ветеранов SO внимательно рассмотреть такой пост, прежде чем отмечать его как« не по теме ». SO стал надежным, универсальным пунктом назначения для ответа на проблему программирования от людей, которые столкнулись с ней и решили ее. Поэтому программисту было бы полезно получить здесь точный ответ, чем искать такую ​​проблему в другом месте.
Декстер

Ответы:

243
  1. Откройте phpMyAdmin в браузере и войдите в систему как root.
  2. Создайте базу данных под названием phpmyadmin
  3. Создайте пользователя с именем pmaи установите "host" равным имени хоста или 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 и войдите снова

Задача решена.

DaveRandom
источник
3
+1 за «выйти и снова войти». Я потратил пять минут, не осознавая, что должен это сделать.
Matthew G
1
@MatthewG Да, конфигурационный файл загружается в ваш сеанс в тот момент, когда вы входите в систему, чтобы сократить дисковый ввод-вывод, так что ^^ применяется ко всем изменениям, которые вы можете внести в конфигурационный файл PMA
DaveRandom
14
По какой-то причине моя версия phpmyadmin имеет имена таблиц как «pma__bookmark» и так далее с двумя «подчеркиваниями». Если у кого-то есть то же самое, то вам следует соответствующим образом отредактировать "config.inc.php". И, кстати, файл конфигурации находится в каталоге «/ etc / phpmyadmin» в Ubuntu
ajaybc
6
В Ubuntu 14.04 расположение create_tables.sql находится внутри /usr/share/doc/phpmyadmin/examples/create_tables.sql.gz
karlingen
5
Это отличный ответ (сотый +от меня;)). Тем не менее, я не нашел примеры каталога , в котором указал на шаге 4. Вместо этого было здесь: /usr/share/doc/phpmyadmin/examplesи там я нашел сжатый файл SQL: create_tables.sql.gz.
Маджид Фуладпур,
134

Если вы попали сюда и используете Debian / Ubuntu (или любой другой дистрибутив на основе dpkg), выполните следующую команду:

sudo dpkg-reconfigure phpmyadmin

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

РЕДАКТИРОВАТЬ: Возможно, стоит попытаться удалить текущего пользователя phpmyadmin.

Или Коэн
источник
2
У меня это сработало, мне просто пришлось переустановить запрашиваемую базу данных. Спасибо. (Ubuntu 12.04)
ino
17
Мне пришлось ввести «pma» вместо «phpmyadmin» для управляющего пользователя во время настройки, чтобы это сработало.
Hardell
1
Спасибо, вы спасли мне день :) хе-хе
Джереми Дикэр
2
Сначала удалил пользователя phpmyadmin и запустил sudo dpkg-reconfigure phpmyadmin после того, как сработал для меня. Спасибо!
bshea
1
Примечание: при этом будут удалены все настроенные серверы, если таковые имеются.
Raptor
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? Если ответ ДА, то это причина ошибки / предупреждения внутри консоли phpMyAdmin. Чтобы решить эту проблему, просто отредактируйте файл config-db.php своего phpMyAdmin и установите правильный пароль базы данных.

Первый ответ, на мой взгляд, слишком беспорядочный, а второй ответ не сработал для меня. Так:

На серверах на базе Linux файл обычно находится в:

/etc/phpmyadmin/config-db.php

или:

/etc/phpMyAdmin/config-db.php

Пример: (My File Выглядела это , и я изменил пользователь , 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

Об Убунбту.

Сообщение Бена близко, но проблема не в пароле root, проблема, которую я обнаружил, заключалась в том, что я создал пароль для базы данных phpmyadmin при ее установке. Этот пароль не вводится в установку в Ubuntu, поэтому переменная $ dbpass = ''; в файле настроек базы данных пуст, а не установленный вами пароль.

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

Проблема в том, что пароль управляющего пользователя PhpMyAdmin (обычно: pma) не совпадает с паролем пользователя mysql: 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 ['Servers'] [$ i] ['password'] = 'your password'
Mohit Sharma
Я увидел, что пароль указан неверно, и я снова ввел правильный пароль, сохранил его и снова запустил phpmyadmin, и теперь он работает правильно
Мохит Шарма
0

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

убедитесь, что пароль соответствует вашему config.inc.php для управляющего пользователя

также для слишком короткой ошибки blowfish

отредактируйте /var/lib/phpmyadmin/blowfish_secret.inc.php и сделайте ключ длиннее

Royce
источник
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';`
Дэвид
источник