Я знаю, что существуют миллиарды вопросов для этой же ошибки
SQLSTATE [HY000] [1045] Доступ запрещен для пользователя 'root' @ 'ALEXPC' (с использованием пароля: ДА)
Я сам даже обращался с этой ошибкой сотни раз за последние 10 лет.
Но этот случай странный: и Navicat, и MySQL Workbench могут подключиться к этому MySQL 8 (и просматривать вещи) просто отлично. Просто мой PHP-код (который хорошо работал на MySQL 5.7). Тот же пользователь / пароль.
Еще одна странная вещь, имя моего php-машины пишется с заглавной буквы в сообщении об ошибке после первого раза:
// first
SQLSTATE[HY000] [1045] Access denied for user 'dev'@'alexpc'
// then
SQLSTATE[HY000] [1045] Access denied for user 'dev'@'ALEXPC'
И инструмент mysql «users and Previleges» говорит: «Mysql допускает использование только строчных символов для имен хостов, хост учетной записи будет обновляться соответствующим образом».
P / s: я использую nginx-cgi на windows и php 7.3.4