Не авторизуется в альтернативную базу данных через 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.