1 (изменено: Pavl, 2020-09-15 23:53:44)

Тема: Ответ MySQL: Соединение невозможно! Неверные настройки.

Добрый день!
На сайте расположенном на локальном сервере XAMPP попробовал использовать одно приложение. Что-то пошло не так и мне пришлось удалить приложение. И я, как обычно, захожу на сайт. И тут в браузере появляется:

Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: NO) in C:\xampp\htdocs\myshop.local\config\db.php on line 15
Connection failed: Access denied for user 'root'@'localhost' (using password: NO)

А при заходе в phpMyadmin:

Ответ MySQL:
Соединение невозможно! Неверные настройки.
mysqli::real_connect(): (HY000/1045): Access denied for user 'pma'@'localhost' (using password: NO)
Ошибка при указании соединения для controluser в конфигурации.
mysqli::real_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: NO)
phpMyAdmin не смог установить соединение с сервером MySQL. Проверьте хост, имя пользователя и пароль установленные в конфигурационном файле config.inc.php и удостоверьтесь, что они соответствуют данным полученным от администратора сервера MySQL.

Зайти на сайт и в phpMyadmin можно, только вписав строку skip-grant-tables в блок [mysqld] файла my.ini.

Файл hosts:

127.0.0.1 localhost
127.0.0.1 myshop.local
127.0.0.1 www.myshop.local

Файл vhosts.conf:

<VirtualHost *:80>
    ServerAdmin postmaster@myshop.local
    DocumentRoot "/xampp/htdocs/myshop.local/www"
    ServerName myshop.local
    ServerAlias www.myshop.local
    ErrorLog "logs/myshop.local-error.log"
    CustomLog "logs/myshop.local-access.log" common
</VirtualHost>

Файл config.inc.php:

/* Authentication type and info */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Lang'] = '';

/* Bind to the localhost ipv4 address and tcp */
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['connect_type'] = 'tcp';

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

Файл db.php в котором происходит подключение к базе данных myshop:

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myshop";

function connect(){
    $conn = mysqli_connect("localhost", "root", "", "myshop");
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }
    mysqli_set_charset($conn, "utf8");
    return $conn;
}

Учётные записи в phpMyadmin:
   
    Имя пользователя    Имя хоста               Пароль                                           Глобальные привилегии                  Grant   
    Любой            %                                  Нет                                      USAGE                                                 Нет                                                                                               
    pma                localhost                              Нет                                       USAGE                                                Нет     
    root                127.0.0.1                              Да                                       ALL PRIVILEGES                                  Да           
    root                ::1                                      Нет                                    ALL PRIVILEGES                                  Да         

Привилегии в phpMyadmin у базы данных myshop:

    Имя пользователя    Имя хоста    Тип              Привилегии             Grant
    root                       127.0.0.1 глобальный   ALL PRIVILEGES         Да       
    root                       ::1           глобальный   ALL PRIVILEGES          Да   



В чём ошибки и как вернуть прежнюю работу сайта с прежними настройками базы данных ($servername = "localhost";
$username = "root";
$password = "";
$dbname = "myshop";)

2

Re: Ответ MySQL: Соединение невозможно! Неверные настройки.

Похоже удалена запись пользователя root@localhost с пустым паролем. Создайте ее в phpMyadmin с привилегиями Grant.

3

Re: Ответ MySQL: Соединение невозможно! Неверные настройки.

Hanut сказал:

Похоже удалена запись пользователя root@localhost с пустым паролем. Создайте ее в phpMyadmin с привилегиями Grant.

Знаю два варианта, как это можно сделать.
1й вариант - sql-запрос, а именно:

CREATE USER 'root'@'localhost' IDENTIFIED BY ''

Получается ответ:

#1290 - The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement

2й вариант - через вкладку "Привилегии". Но, так как в phpMyadmin есть сообщение "У вас нет прав администрировать пользователей!", то и кнопки "Добавить нового пользователя", - тоже нет.

Может быть, ещё можно, как-то это сделать?

4

Re: Ответ MySQL: Соединение невозможно! Неверные настройки.

Попробуйте так.

FLUSH PRIVILEGES;
GRANT ALL ON *.* TO root@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;

5

Re: Ответ MySQL: Соединение невозможно! Неверные настройки.

Hanut сказал:

Попробуйте так.

FLUSH PRIVILEGES;
GRANT ALL ON *.* TO root@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;

Частично проблема решилась - и на сайт переходится, и к базе данных есть доступ. Но, в phpMyadmin остаётся такая ошибка:

mysqli::real_connect(): (HY000/1045): Access denied for user 'pma'@'localhost' (using password: NO)
Ошибка при указании соединения для controluser в конфигурации.
Эту ошибку, также решать или, как-то иначе?

6

Re: Ответ MySQL: Соединение невозможно! Неверные настройки.

В config.inc.php укажите root вместо учетной записи pma. Но предварительно попробуйте сбросить кеш браузера, возможно это тоже влияет.

7

Re: Ответ MySQL: Соединение невозможно! Неверные настройки.

Hanut сказал:

В config.inc.php укажите root вместо учетной записи pma. Но предварительно попробуйте сбросить кеш браузера, возможно это тоже влияет.

Всё, спасибо, ошибок не осталось.