/
/
Не авторизуется в альтернативную базу данных через phpMyAdmin

Не авторизуется в альтернативную базу данных через phpMyAdmin

Симптомы

При попытке войти в базу данных MySQL версии 8.0 и выше, phpMyAdmin возвращает ошибку «mysqli::real_connect(): The server requested authentication method unknown to the client [caching_sha2_password]».

Решение

Необходимо заменить версию PHP, на которой работает phpMyAdmin, как минимум на альтернативную версию 7.4.

Убедитесь, что в панели установлен альтернативный PHP версии 7.4 с PHP-FPM в разделе Конфигурация ПО - установите, если отсутствует.

Выполните команды по изменений конфигурационных файлов PHP-FPM:

cp -ar /etc/php-fpm.d/apache.conf /opt/php74/etc/php-fpm.d/apachealt.conf
sed -i  "s/php-fpm.apache.sock/php-fpm.apachealt.sock/g" /etc/nginx/vhosts-includes/phpmyadmin-nginx.conf
sed -i  "s/php-fpm.apache.sock/php-fpm.apachealt.sock/g" /opt/php74/etc/php-fpm.d/apachealt.conf

Проверьте синтаксис веб-сервера Nginx и PHP-FPM для версии 7.4:

nginx -t
/opt/php74/sbin/php-fpm -t

Если ошибки отсутствуют, перезагрузите службы:

systemctl reload nginx php-fpm74 || systemctl restart nginx php-fpm74

Включите следующие расширения в разделе PHP для PHP 7.4 для корректной работы phpMyAdmin, если они отключены:

  • json
  • session
  • pcre
  • hash
  • spl
  • ctype
  • zip
  • gd2
  • openssl
  • libxml
  • curl
  • sodium

Причина

По умолчанию для MySQL версий 8.0 и старше используется плагин авторизации caching_sha2_password, который не поддерживается старыми версиями PHP ниже версии 7.4.