Страница 1 из 1

Переход на php 7 - ошибка PDO

Добавлено: 2016.12.03, 12:27
Евгений Емельянов
День добрый!
Yii2.0.10 (advanced) на хостинге перевел на php 7. Не хочет соединяться с базой. Такие исключения:
SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
in /home/virtwww/w_dev-inknsk0_6a660212/http/vendor/yiisoft/yii2/db/Connection.php at line 602
PDO::__construct(): The server requested authentication method unknown to the client [mysql_old_password]
in /home/virtwww/w_dev-inknsk0_6a660212/http/vendor/yiisoft/yii2/db/Connection.php at line 602
Думал на старые хэши паролей, пароли в базе обновил (логин не обновлял) - ситуация не изменилась. Хостер ретировался...

Может, здесь кто сталкивался с подобным и подскажет как решить?

Re: Переход на php 7 - ошибка PDO

Добавлено: 2016.12.03, 12:34
zelenin

Re: Переход на php 7 - ошибка PDO

Добавлено: 2016.12.03, 19:45
webplus
Евгений Емельянов писал(а):День добрый!
Yii2.0.10 (advanced) на хостинге перевел на php 7. Не хочет соединяться с базой. Такие исключения:
SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
in /home/virtwww/w_dev-inknsk0_6a660212/http/vendor/yiisoft/yii2/db/Connection.php at line 602
PDO::__construct(): The server requested authentication method unknown to the client [mysql_old_password]
in /home/virtwww/w_dev-inknsk0_6a660212/http/vendor/yiisoft/yii2/db/Connection.php at line 602
Как решил проблему напиши?

Re: Переход на php 7 - ошибка PDO

Добавлено: 2016.12.03, 20:09
Евгений Емельянов
Пришлось создать на хостинге новую базу с опцией "мои скрипты не поддерживают old_passwords" и развернуть в ней дамп старой базы.
База была с 16-ти битным хэшированием паролей, а php 7.0.11 (на который перевел сайт) уже не поддерживает этот алгоритм и пароли хоть заменяйся (для обновления хэша) - они все-равно давали 16-битные хэши.

С новой базой (mySQL 5.7.*) php подружился...

Re: Переход на php 7 - ошибка PDO

Добавлено: 2016.12.03, 20:16
Евгений Емельянов
webplus писал(а):Как решил проблему напиши?
А что, тебе тоже советы зеленина не помогают? :)
Можно было бы на этом форуме вообще сделать фичу: нажимешь на "Создать новую тему", и переадресовываешься сразу на гугл. Очень удобно!
Особенно для нас, недоразвитых, которые про гугл не знают...

Re: Переход на php 7 - ошибка PDO

Добавлено: 2016.12.03, 20:17
nepob
Извините за оффтоп. Кто-нибудь знает зачем php хранит хэши паролей от mysql?

Re: Переход на php 7 - ошибка PDO

Добавлено: 2016.12.03, 20:18
Onotole
nepob писал(а):Извините за оффтоп. Кто-нибудь знает зачем php хранит хэши паролей от mysql?
Где хранит?

Re: Переход на php 7 - ошибка PDO

Добавлено: 2016.12.03, 20:20
nepob
Onotole писал(а):
nepob писал(а):Извините за оффтоп. Кто-нибудь знает зачем php хранит хэши паролей от mysql?
Где хранит?
Ок. Я слишком быстрый вывод сделал)
Зачем php хэширует пароли от mysql?

Re: Переход на php 7 - ошибка PDO

Добавлено: 2016.12.03, 20:35
zelenin
nepob писал(а):
Onotole писал(а):
nepob писал(а):Извините за оффтоп. Кто-нибудь знает зачем php хранит хэши паролей от mysql?
Где хранит?
Ок. Я слишком быстрый вывод сделал)
Зачем php хэширует пароли от mysql?
чтобы не гонять голые пароли между клиентом и сервером?

Re: Переход на php 7 - ошибка PDO

Добавлено: 2016.12.03, 20:40
nepob
zelenin писал(а):
nepob писал(а):
Onotole писал(а): Где хранит?
Ок. Я слишком быстрый вывод сделал)
Зачем php хэширует пароли от mysql?
чтобы не гонять голые пароли между клиентом и сервером?
Ну да, логично. Спасибо)

Re: Переход на php 7 - ошибка PDO

Добавлено: 2016.12.03, 20:42
Евгений Емельянов
nepob писал(а):Извините за оффтоп. Кто-нибудь знает зачем php хранит хэши паролей от mysql?
не сам php, конечно, а один из его модулей - mysqlnd, кажется

Re: Переход на php 7 - ошибка PDO

Добавлено: 2018.01.17, 18:43
porcelanosa
Так решилась проблема у кого-нибудь?
Тоже на одном из виртуальных хостингов столкнулась с такой проблемой

Код: Выделить всё

[notice] [client 178.140.175.251] An Error occurred while handling another error:\nPDOException: PDO::__construct(): The server requested authentication method unknown to the client [mysql_old_password]
Хостер говорит что надо использовать mysqli , а не mysql :-)
и задать параметр

Код: Выделить всё

SET GLOBAL old_passwords = 1;
на вирт. хостинге нельзя