Я недавно установил Mac OS 10.14.5 на мой Mac mini (конец 2012 года). Я сделал mysqldump --all-database на моем ноутбуке с MySQL 5.6.15, скопировал файл на мой Mac mini и импортировал дамп на 8.0.16 MySQL Community Server - GPL, который был предустановлен с Mac OS 10.14 0,5. При попытке получить доступ к веб-страницам, использующим MySQL, я получаю сообщение об ошибке:
mysqli_connect (): сервер запросил неизвестный клиенту метод аутентификации [caching_sha2_password]
Я думал, что это потому, что в дамп не была включена БД MySQL (включая mysql.user), и, конечно же, не было пользователей, кроме mysql.infoschema, mysql.session, mysql.sys и root; ни один из созданных мной пользователей не был в mysql.users. Поэтому я попытался создать пользователя, которого я определил на своей веб-странице php:
создать пользователя 'username' @ 'localhost', идентифицированного как 'password';
и получил следующее сообщение об ошибке:
ОШИБКА 1728 (HY000): Невозможно загрузить из mysql.db. Возможно, таблица повреждена
Поэтому я изменил учетные данные для входа на веб-странице php, чтобы использовать root, и все равно получил сообщение об ошибке:
mysqli_connect (): сервер запросил неизвестный клиенту метод аутентификации [caching_sha2_password]
Код, который я использую для подключения к БД:
функция connectDBi ($ str_server, $ str_username, $ str_password, $ str_database, $ bool_debug = false)
{
$ linkDB = mysqli_connect ($ str_server, $ str_username, $ str_password, $ str_database);
if(!$linkDB)
{
if($bool_debug)
{
echo '<div style="border:1px solid blue;">';
echo backtrace(debug_backtrace())
.'UNsuccessful connection "'.$str_database.'" '
.'on "'.$str_server.'" '
;
echo '</div>'."\n";
} // if($bool_debug) else
} // if(!$linkDB)
else
{
if($bool_debug)
{
echo '<div style="border:1px solid blue;">';
echo backtrace(debug_backtrace())
.'SUCCESSFUL connection to "'.$str_database.'" '
.'on "'.$str_server.'" '
;
echo '</div>'."\n";
}
return $linkDB;
} // if(!$linkDB) else
} // функция connectDBi ()