HY000/1862 или #1862 Невозможно подключиться к серверу MySQL

Те, кто обновил MySQL до версии 5.7 должен был столкнуть с этой проблемой. Что это и как ее решить читаем дальше.

В версии MySQL 5.7 для паролей теперь задается время жизни. Хотя поговаривают, что эта фича была и в 5.6 но я копать не стал, а стал искать решение. Смысл в том, что по истечению некоторого времени в phpMyAdmin мы увидим такое:

#1862 Невозможно подключиться к серверу MySQL

А наш сайт при подключении к базе выдаст следующее сообщение:

Warning: mysqli_connect(): (HY000/1862): Your password has expired.

(HY000/1862): Your password has expired

Для начала надо запустить консоль MySQL. Для этого идем в папку с установленной СУБД и запускаем файл mysq.exe (примерно это здесь: C:\WebServer\usr\local\mysql\bin\mysql.exe).

Если у вас, как и у меня, консоль открылась и сразу закрылась, то делаем следующее: открываем консоль виндовса (нажмите сочетание клавиш Win+R и в открывшемся окошке введите cmd) и пропишите адрес до самого файла mysql.exe. Вот как у меня.

2016-03-27_14-00-00

Если и здесь нас настигла ошибка (ERROR 1045 (280000): Access danied for user…) — прописываем ту же команду но дополняем ее параметрами -u root -p и нажимайте enter и еще раз enter. После этого вы должны увидеть следующее:

2016-03-27_14-02-40

На следующем этапе надо будет ввести такую команду:

ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

Теперь нам надо перезапустить MySQL. Для этого откройте новое окно консоли и пропишите такую команду net stop mysql. Тут нас могут поругать, что нет достаточных прав, как на скрине

2016-03-27_14-12-57

Чтобы этого избежать, нам надо запустить консоль с правами администратора. Для этого делаем следующее: в поиске виндовса наберите слово cmd. Теперь в списке вы видите пункт Командная строка (она же консоль). Нажмите правой кнопкой мыши на ней и выберите из выпадающего меню пункт «Запустить от имени администратора»

2016-03-27_14-15-45

Теперь запустится консоль с правами администратора. Визуально это также заметно, стоит только обратить внимание на титул окна

2016-03-27_14-18-34

Теперь вводим команду net stop mysql и жмем Enter. Таким образом мы остановили нашу службу, а командой net start mysql мы ее снова запускаем. То есть мы просто перегрузили наш MySQL чтобы изменения вступили в силу.

Вот и все.