Почему ошибка подключения phpmyadmin к mysql? - PullRequest
0 голосов
/ 28 мая 2020

Запуск phpmyadmin на моем локальном ubuntu 18 Я получил ошибку

#1698 - Access denied for user 'root'@'localhost'

Но в файле /etc/phpmyadmin/config.inc.php я изменил параметры подключения, чтобы избежать пользователя по умолчанию как:

$dbuser='MYUSER';
$dbpass='MYPASSWORD';
$basepath='';
$dbname='phpmyadmin';
$dbserver='localhost';
$dbport='3306';
$dbtype='mysql';

Под MYUSER / MYPASSWORD я подключаюсь к своему sql из моих php приложений. В information_schema я запускаю

GRANT ALL PRIVILEGES ON * . * TO 'lardev'@'localhost'

с выводом:

Query executed OK, 0 rows affected.

Почему root пользователь ссылается на сообщение об ошибке и как исправить ошибку?

Спасибо!

1 Ответ

1 голос
/ 29 мая 2020

Переменные, которые вы ввели в config.inc.php, не подходят для phpMyAdmin. Вы можете обратиться к образцам файлов конфигурации , по всем директивам конфигурации или к файлу config.sample.inc.php, который должен быть включен в вашу загрузку ( или может быть просмотрен на Github ) для получения подробной информации о правильном синтаксисе.

Официально по умолчанию используется тип аутентификации под названием cook ie, при котором вам предлагается ввести имя пользователя и пароль при попытке входа в систему (вы можете увидеть этот в действии на демонстрационном сервере ). Ваше описание звучит так, как будто вам не предлагается ввести имя пользователя, что означает, что кто-то изменил тип аутентификации 'config' с такой директивой, как $cfg['Servers'][$i]['auth_type'] = 'config'; Соответствующее различие (помимо безопасности и того, как вы go о входе в систему) заключается в том, что с конфигурацией auth_type вам также необходимо установить имя пользователя и пароль в файле конфигурации. С auth_type cook ie или http эти значения не используются.

С учетом сказанного, вот исправленная версия config.inc.php с использованием конфигурации, которую вы указали, с использованием имен переменных phpMyAdmin:

<?php

$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'MYUSER';
$cfg['Servers'][$i]['password'] = 'MYPASSWORD';

'localhost' - это имя хоста по умолчанию, заставляет соединение использовать сокеты, а не сеть TCP / IP , поэтому порт игнорируется. Чтобы использовать соединение TCP / IP, установите $cfg['Servers'][$i]['host'] = '127.0.0.1';

Другие переменные, $ basepath, $ dbname и $ dbtype, не имеют прямого эквивалента phpMyAdmin.

Также обратите внимание, что я предлагаем использовать auth_type cook ie вместо config в любой ситуации, когда ваш веб-сервер будет обслуживать phpMyAdmin для подключений, не поступающих с localhost (в качестве меры безопасности, иначе любой, у кого есть URL-адрес, имеет прямой доступ к вашей базе данных).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...