Не удается настроить MySQL с помощью phpMyAdmin локально в Windows

Я пытаюсь настроить свой собственный локальный сервер в Windows 7 с бинарными версиями PHP, Apache, MySQL и phpMyAdmin. Я успешно настроил и запустил Apache с PHP.

Теперь я хочу настроить MySQL и phpMyAdmin. Сначала я создал файл my.cnf с кодом

[mysqld]
bind-address = 127.0.0.1
default_authentication_plugin = mysql_native_password

и затем я запускаю команду CMD

D:/Server/mysql/bin/mysqld.exe --initialize --console

и получил папку D:Server/mysql/data с файлами в ней

Мои HTML-файлы будут в папке D:/Server/localhost. Поэтому я вставил туда распакованную папку phpMyAdmin и добавил в ее config.in.php следующие строки:

...
$cfg['Servers'][$i]['verbose'] = '';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['nopassword'] = true;
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Servers'][$i]['ServerDefault'] = 1;

Затем я запустил MySQL командой

D:/Server/mysql/bin/mysqld.exe --console

и в командной строке я получаю

.../mysqld.exe ready for connections
... X Plugin ready for connections

Но теперь, если я попытаюсь войти в phpMyAdmin с именем пользователя root и пустым паролем, я получаю сообщение об ошибке

mysqli_real_connect(): The server requested authentication method unknown to the client [caching_sha2_password]

mysqli_real_connect(): (HY000/2054): The server requested authentication method unknown to the client

Там на SO я прочитал https://stackoverflow.com/a/52364450/3208225, но у меня уже есть строка default_authentication_plugin= mysql_native_password в my.cnf

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
119
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

попробуйте установить ['auth_type'] на: $cfg['Servers'][$i]['auth_type'] = 'config';.

Когда я установил phpmyadmin, я сделал ту же ошибку. Надеюсь, это сработает, для меня это сработало.

С уважением.

Теперь, когда я захожу в http://localhost/phpmyadmin/index.php, я получаю сообщение об ошибке MySQL said: Documentation. Cannot connect: invalid settings.

stckvrw 09.04.2019 20:44
Ответ принят как подходящий

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

>mysqld.exe --initialize --console

который генерирует временный пароль, но я ожидал войти в систему без пароля. Поэтому, если мы хотим использовать пустой пароль, мы должны инициализировать каталог данных с помощью команды

>mysqld.exe --initialize-insecure --console

и мы можем установить пароль позже

Ссылка:https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization.html

Другие вопросы по теме