Хранилище конфигурации phpMyAdmin настроено не полностью


14

Я напечатал apt-get install phpmyadminи столкнулся с ошибкой, говоря, что это не может соединиться с mysql (проблема сокета). Это было нормально, потому что я забыл установить mysql раньше , поэтому я выбрал «abort» над всеми опциями, заданными phpmyadmin.

Тогда sudo taskselи установил lamp server.

Закончив, я побежал:

apt-get remove --purge phpmyadmin
apt-get install phpmyadmin

Тогда, mysql -u root -pно я получил следующую ошибку:Access denied for the following user 'root'@'localhost'

Поэтому я решил эту проблему, выполнив:

mysql
SET PASSWORD FOR root@localhost=PASSWORD('mypassword'); 
GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

Затем я успешно вошел в localhost / phpmyadmin , но нашел это сообщение:

Хранилище конфигурации phpMyAdmin настроено не полностью, некоторые расширенные функции отключены. Чтобы узнать, почему нажмите здесь.

Я нажал здесь , и он показал мне: введите описание изображения здесь

Могу ли я спокойно продолжать работу с mysql / phpmyadmin?


Да, это правильно. Убедитесь, что все директивы $ cfg ['Servers'] [$ i] не закомментированы!
Кратос

Ответы:


26

Ответ ОП :

Я решил эту проблему со следующим:

cd /usr/share/doc/phpmyadmin/examples
sudo gunzip create_tables.sql.gz 
mysql -u root -p < create_tables.sql
mysql -u root -p -e 'GRANT SELECT, INSERT, DELETE, UPDATE ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY "pmapassword"'

Затем редактируется /etc/phpmyadmin/config.inc.phpпо этим строкам:

/* Optional: User for advanced features */
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'pmapassword';

Зайдите в phpmyadmin, и предупреждающее сообщение исчезло.

Также обратите внимание, что у вас может появиться новое предупреждение о том, что хранилище phpmyadmin настроено не полностью. Это может быть вызвано тем, что вам нужно сообщить phpmyadmin имена таблиц, чтобы использовать их функции. Что можно сделать редактируя /etc/phpmyadmin/config.inc.phpпо этим строкам:

$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';

Обратите внимание на двойное подчеркивание __.


У меня все еще была небольшая проблема, я должен был закомментировать следующее:
itnet7

// $ cfg ['Servers'] [$ i] ['controluser'] = $ dbuser; // $ cfg ['Servers'] [$ i] ['controlpass'] = $ dbuserpwd; быть pma и пароль, который был установлен.
itnet7

1
Не забудьте выйти и снова войти в систему.
nwolybug

@nwolybug MySQL разрешения пользователей применяются немедленно
Braiam

1
и не забудьте, чтобы отразить изменения, вам нужно снова войти в phpmyadmin. Обновление страницы не будет работать.
Кури

2

Я также должен был изменить все имена таблиц /etc/phpmyadmin/config.inc.phpс двойным подчеркиванием ex.

$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark'; 

потому что это была таблица, созданная после create_tables.sqlвыполнения.


2

Это помогло мне:

  1. sudo vim /etc/phpmyadmin/config.inc.php
  2. Добавьте следующие строки с другими $ cfg ['Servers'] [$ i]:

    $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns'; $cfg['Servers'][$i]['favorite'] = 'pma__favorite'; $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding'; $cfg['Servers'][$i]['recent'] = 'pma__recent'; $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches'; $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs'; $cfg['Servers'][$i]['tracking'] = 'pma__tracking'; $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig'; $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups'; $cfg['Servers'][$i]['tracking'] = 'pma__users';

  3. Теперь попробуйте войти в localhost / phpmyadmin. Сообщение об ошибке больше не должно появляться.

Короче говоря, что бы ни показывало ошибку отсутствующего компонента, просто добавьте

$cfg['Servers'][$i][COMPONENT] = 'pma__COMPONENT';

в /etc/phpmyadmin/config.inc.php


1

Команда VestaCP создала и успешно протестировала сценарий, чтобы избавиться от этого надоедливого сообщения: «Хранилище конфигурации phpMyAdmin настроено не полностью, некоторые расширенные функции отключены». Надеемся, что исправление будет полезным и поможет пользователям. Посетите страницу Github для кода.

Сценарий:

  • Работает от пользователя root
  • Делает резервную копию /etc/phpmyadmin/config.inc.phpв/root
  • Изменяет значения в /etc/phpmyadmin/config.inc.php
  • Добавляет пользователя mysql pmaи таблицу phpmyadmin(если пользователь или таблица уже существуют, скрипт удалит их!)
  • Скачивает и добавляет таблицу для базы данных phpmyadmin
  • Очищает временные файлы, включая остаток pma.txt(содержит пароль для pma @ localhost) и старый конфиг

1

Для меня: я должен отредактировать /etc/phpmyadmin/config-db.php в этой строке:

$dbname='phpmyadmin';

это помогло мне. без этого он работал только для пользователя root db, с этим также для другого.
Luk

0

Ни одно из предложенных здесь решений не помогло мне.

Эта проблема происходит с обновлением mysql до 5.6 или 5.7 версии.

Я решил это, установив версию phpmyadmin 4.7.

наслаждаться

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.