Slavenin999
@Slavenin999
программист php/erlang/elixir/js

Соединение со старой базой mysql из нового php

Привет Хабр!

Есть такая вот проблема. На одном из серверов есть сайт, есть база. Там что php, что mysql старые, работают нормально. Есть другой сервер. Где все новое. Необходима как-то законектиться с нового сервера к старой базе. При этом менять и обновлять хэш пароля на новый нельзя. Можно это как-то сделать без установки древних версий php?

ПДО пишет ошибку
SQLSTATE[HY000] [2000] mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file

все решения найденные в поисковиках сводятся к обновлению хэша в самой базе. Можно как-то без этого обойтись?
  • Вопрос задан
  • 4112 просмотров
Пригласить эксперта
Ответы на вопрос 3
@zapimir
Насколько старая MySQL, какая конкретно версия? Если это всё же 4.1 или выше, но просто использующая старую авторизацию. То самый простой вариант завести еще одного юзера с доступом к нужной базе и новой авторизацией, и с нового сайта использовать этого нового юзера, в то время как старые скрипты будут ходить под старым юзером.
Ответ написан
Можно сделать систему общения (через хмл) тогда старый будет работать как и работал, а новый будет конектиться к старой базе по хмл, если нужно только проверить правильно ли ввел пользователь пароль.

но я б еще сделал так:
— если пользователь еще не получил новый пароль — конектим к старой, если проходит успешно — в новой БД пользователю генерировать правильный пароль и уже последующие конекты делать по новой БД
Ответ написан
@smileonl
Недавно столкнулся с такой же проблемой, без обновления хеша решить не получилось. А почему у вас не выходит обновить хеш пароля?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы