Разрешение проблемы с Warning: mysqli::mysqli(): The server requested authentication method unknown to the client [mysql_old_password]

На моём хостинге можно выбирать версию PHP. На выбор предоставляются PHP 5.2 / 5.3 / 5.4 / 5.5 / 5.6. Много лет назад, когда я только создавал свой первый сайт, по умолчанию использовалась версия PHP 5.3. И под этой же версией до сегодняшнего дня "крутились" мои сайты, т.к. всё работало нормально и меня не сильно заботила версия ПО. На локальном сервере я всегда пользуюсь самыми последними версиями. Например, на момент написания у меня установлен PHP 5.6.6. И вполне понятно решение перевести и сайты на эту же версию.

Для каждого домена можно выбрать любую версию PHP из приведённого списка. Но я не стал ничего мудрить и просто задал для каждого из своих шести сайтов PHP 5.6.

Ошибка подключения к базе данных после обновления PHP

Служба поддержки быстро отрапортовала, что операция завершена. Но когда я стал проверять работоспособность сайтов все они, как один, выдавали ошибку, связанную с базой данных. WordPress сухо сообщал, что возникла проблема при подключении к базе данных. Один из моих собственных скриптов был более многословен. Мне он выдал вот такую ошибку:

Warning: mysqli::mysqli(): The server requested authentication method unknown to the client [mysql_old_password] in /home/host900263/miloserdov.org/htdocs/www/mysqliConnector.dll.php on line 30

Warning: mysqli::mysqli(): (HY000/2054): The server requested authentication method unknown to the client in /home/host900263/miloserdov.org/htdocs/www/mysqliConnector.dll.php on line 30

Очевидный вариант — откатиться обратно, мне совсем не нравился. Поэтому я решил разобраться в проблеме. Не будем вдаваться в технические детали, почему так происходит, а перейдём сразу к разрешению проблемы. Зато нашёл простые способы разрешения.

Начну с чужого способа, до которого я сам не догадался. Нужно задать новый пароль для пользователя базы данных. И даже если вы сразу после этого вернёте старый пароль, то всё будет работать. Простое и изящное решение. 

Мой собственный способ не такой удачный. Но как дополнительный вариант я опишу и его. Можно создать нового пользователя, назначить ему права на базы данных и поменять настройки для сайтов. Т.е. прописать в конфигурационных файлах сайтов новое имя пользователя и новый пароль.

Первый способ, безусловно, лучше. Но я нашёл его уже после того, как всё исправил по собственному пути.

Надеюсь, моя небольшая заметка помогла кому-то сберечь своё время.  

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *