Не могу настроить MySQL с phpMyAdmin локально в Windows - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь настроить свой собственный локальный сервер в 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 (): сервер запросил метод аутентификации неизвестен клиенту [caching_sha2_password]

mysqli_real_connect (): (HY000 / 2054): сервер запросил метод аутентификации, неизвестный клиент

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

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

Ответы [ 2 ]

1 голос
/ 10 апреля 2019

Хорошо, проблема в том, что я инициализировал каталог data командой

>mysqld.exe --initialize --console

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

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

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

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

0 голосов
/ 09 апреля 2019

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

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

С уважением.

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