Не удалось подключиться к controluser, как определено в конфигурации

Я уже проверил этой но так как я работаю на Ubuntu 10.04 вместо XAMPP и уже создал базу данных phpmyadmin, и я могу войти через терминал с пользователями root и phpmyadmin.

Как я установил: sudo apt-get install lamp-server^ sudo apt-получить установить phpmyadmin

Я могу войти локально на терминал, используя как root, так и phpmyadmin пользователей. Я могу просмотреть страницу входа в phpmyadmin. В функцию phpinfo.на PHP страницу, Я разместил на сервер работает.

  • Ubuntu Версии 10.04.4 Lucid Lynx
  • Apache 2.2.14
  • MySQL 5.1.73
  • PHP 5.3.6
  • Phpmyadmin 3.3.2

9 ответов


поскольку вы можете войти в систему как controluser на терминале, скорее всего, ваш файл конфигурации не содержит надлежащего имени пользователя или пароля для controluser.

открыть config.inc.php в текстовом редакторе и посмотрите на строки controluser и controlpass-убедитесь, что они точно соответствуют тому, какое имя пользователя и пароль вы успешно используете. Попробуйте полностью комментировать эти две строки, чтобы узнать, появляется ли другое сообщение об ошибке.

если вы использовать диспетчер пакетов для установки, обратите внимание, что файлы конфигурации, расположенных в /etc/phpmyadmin и если вы вручную добавили эти строки, они могут быть перезаписаны другим файлом конфигурации. Попробуй!--2--> чтобы увидеть, появляется ли это в более чем одном файле.

поскольку вы использовали диспетчер пакетов, вы должны позволить ему обрабатывать настройку базы данных. Попробуйте удалить все изменения, внесенные в файлы конфигурации, и запустить dpkg-reconfigure -plow phpmyadmin (это команда оболочки для запуска по команде запрос); это изменит конфигурацию пакета phpmyadmin и спросит, хотите ли вы разрешить dbconfig-common создавать таблицы phpMyAdmin для вас, а также controluser.


просто раскомментировать строку:

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

попробовать его.


возможная проблема: обновленный пользователь mySQL

Это также может произойти, когда пользователь, к которому вы подключаетесь, как в phpmyadmin, был обновлен в mySQL. У меня просто было это при удалении/обновлении/переустановке phpmyadmin и изменении некоторых настроек mySQL одновременно.

исправить эту проблему: update config-db.в PHP

исправление идти обновление конфигурации БД.php-файл с необходимыми учетными данными (имя пользователя, пароль и т. д.)

В Ubuntu 12.04, находится по адресу /etc/phpmyadmin / config-db.РНР.

некоторые более подробные инструкции находятся на http://tehnoblog.org/phpmyadmin-error-connection-for-controluser-as-defined-in-your-configuration-failed/


Я успешно подключился, переключив протокол на tcp и подключившись к "127.0.0.1" вместо "localhost". По-прежнему не удается подключиться через сокет Unix, хотя даже несмотря на то, что работает сокет демона MySql.


есть 2 ошибки:

1. соединения для controluser в соответствии с конфигурацией не
решение:
a. Открытый терминал: судо команду Gedit /и т. д./Приложение phpmyadmin/config файл.Инк.в PHP

b. и раскомментируйте следующие строки(может быть, оба придут 2 раза в зависимости от версии): $cfg ['Servers'] [$i] ['AllowNoPassword'] = TRUE;

Си. и комментируем следующие строки(может быть и придет в 2 раза зависит от версия): //$cfg ['Servers'] [$i] ['controluser'] = $dbuser; //$cfg ['Servers'] [$i] ['controlpass'] = $dbpass;

2. Доступ запрещен для пользователя 'root' @ 'localhost'

это произойдет, когда вы откроете phpmyadmin или когда вы откроете mysql на терминале без команды sudo(не от пользователя root). Эта ошибка вызвана пользователем root. Резонанс за этой ошибкой-ваш текущий пользователь ubuntu не имеет previlages для открытия mysql в терминале. Если вы открываете mysql с помощью команды sudo, тогда она откроется, но не откроется от вашего текущего пользователя. Например:

lenovo@lenovo-ThinkPad-E460:/etc $ mysql-u root-p Введите пароль: Ошибка 1698 (28000): доступ запрещен для пользователя "root" @ "localhost"

здесь текущий пользователь ubuntu-lenovo. Таким образом, вы должны предоставить разрешения пользователю root. Процесс:

1-Во-первых, подключение в sudo mysql

судо в mysql -u в корень

2-Проверьте свои учетные записи, присутствующие в ваш дБ

выберите пользователя, хост из mysql.пользователь;

+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| admin            | localhost |
| debian-sys-maint | localhost |
| magento_user     | localhost |
| mysql.sys        | localhost |
| root             | localhost |

3-Удалить текущую учетную запись root@localhost

mysql> DROP USER 'root' @ 'localhost'; Запрос ОК, 0 затронутых строк (0,00 сек)

4-воссоздать пользователя

mysql> создать пользователя 'root'@'%', идентифицированного "; Запрос ОК, 0 затронутых строк (0,00 сек)

5 - даем права для пользователя и не забудьте очистить привилегии

mysql> предоставить все привилегии на . для 'root'@'%'; Запрос ОК, 0 затронутых строк (0,00 сек)

mysql> привилегии FLUSH; Запрос OK, затронуты 0 строк (0,01 сек)

6-выйдите из mysql и попробуйте снова подключиться без sudo

надеюсь, это поможет. И теперь вы можете открыть phpmyadmin без пароля.


создать базу данных в phpmyadmin

открыть файл

  /etc/phpmyadmin/config-db.php

установите пароль root в config-db.PHP-файл.

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

проблема будет решена.


Если вы находитесь в windows с xammp, перейдите в C:\xammp\phpMyAdmin\ config.inc, откройте его и найдите эту строку, теперь убедится

/* User for advanced features*/
$cfg['servers'] ['controlluser'] = 'pma';    $cfg['servers'] ['controllpass'] = '';

и имя пользователя и пароль пользователя pma в базе данных phpMyAdmin одинаковы


в моем случае я использую соединение сокета. При установке $cfg в['сервера'][$я]['controlhost'] = "; (так пусто) подключение сообщения для controluser в соответствии с конфигурацией не исчез. Я думаю, причина в том, что если вы установите "controlhost" phpMyAdmin пытается сделать новое соединение с базой данных, тем самым пренебрегая сокетом.

в коде вы найдете:

          if (! empty($cfg['Server']['controlhost'])
            || ! empty($cfg['Server']['controlport'])

в конце блока if выполняется новое соединение.


прежде всего убедитесь, что у вас есть правильное username & password в этот файл:

/etc/dbconfig-common/phpmyadmin.conf

как говорится в /etc/phpmyadmin/config-db.php:

## database access settings in php format
## automatically generated from /etc/dbconfig-common/phpmyadmin.conf
## by /usr/sbin/dbconfig-generate-include

этой username & password используются для доступа к phpmyadmin database.
Таким образом, phpmyadmin database должен быть user С тем же именем и паролем, назначенным ему, по крайней мере,Database-specific privileges

это решило его для меня....

On:

  • сервер: Localhost через UNIX сокет
  • тип сервера: MySQL
  • версия сервера: 5.7.16 - MySQL Community Server (GPL)