php mysqli_connect: метод аутентификации, неизвестный клиенту




hash sha (4)

В настоящее время расширение php mysqli не поддерживает новую функцию аутентификации caching_sha2. Вы должны ждать, пока они выпустят обновление.

Ознакомьтесь с соответствующим сообщением от разработчиков MySQL: https://mysqlserverteam.com/upgrading-to-mysql-8-0-default-authentication-plugin-considerations/

Они не упомянули PDO, возможно, вам следует попытаться подключиться к PDO.

Я использую php mysqli_connect для входа в базу данных MySQL (все на localhost)

<?php
//DEFINE ('DB_USER', 'user2');
//DEFINE ('DB_PASSWORD', 'pass2');
DEFINE ('DB_USER', 'user1');
DEFINE ('DB_PASSWORD', 'pass1');
DEFINE ('DB_HOST', '127.0.0.1');
DEFINE ('DB_NAME', 'dbname');

$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);

if(!$dbc){
    die('error connecting to database');    
}
?>

это таблица mysql.user:

MySQL Server ini File:

[mysqld]
# The default authentication plugin to be used when connecting to the server
default_authentication_plugin=caching_sha2_password
#default_authentication_plugin=mysql_native_password

с помощью caching_sha2_password в ini-файле MySQL Server невозможно вообще войти с помощью user1 или user2;

ошибка: mysqli_connect (): сервер запросил неизвестный клиенту метод аутентификации [caching_sha2_password] в ...

с mysql_native_password в ini-файле MySQL Server можно войти в систему с user1, но с user2, та же ошибка;

Как я могу войти в систему, используя caching_sha2_password на сервере MySql?


Если вы используете Windows и вообще не можете использовать caching_sha2_password , вы можете сделать следующее:

  1. перезапустите установщик MySQL
  2. выберите «Reconfigure» рядом с MySQL Server (верхний элемент)
  3. нажимайте «Далее», пока не дойдете до «Метод аутентификации»
  4. измените «Использовать надежное шифрование пароля для аутентификации (РЕКОМЕНДУЕТСЯ)» на «Использовать устаревший метод аутентификации (сохранить совместимость с MySQL 5.X)
  5. Нажмите кнопку "Далее"
  6. введите пароль своей учетной записи в разделе «Учетные записи и роли» и нажмите «Проверить»
  7. Нажмите кнопку "Далее"
  8. продолжайте нажимать «Далее», пока не дойдете до «Применить конфигурацию»
  9. нажмите «Выполнить»

Установщик сделает все необходимые изменения конфигурации.


Я ALTER USER 'root' @ 'localhost' identified with mysql_native_password BY 'root123'; следующую команду ALTER USER 'root' @ 'localhost' identified with mysql_native_password BY 'root123'; в командной строке и, наконец, перезапустите MySQL в локальных службах.


Я решаю это с помощью команды SQL:

ALTER USER 'mysqlUsername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mysqlUsernamePassword';

на который ссылается https://dev.mysql.com/doc/refman/8.0/en/alter-user.html

если вы создаете нового пользователя

 CREATE USER 'jeffrey'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

на который ссылается https://dev.mysql.com/doc/refman/8.0/en/create-user.html

это работает для меня





sha