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

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Евгений Емельянов
Сообщения: 167
Зарегистрирован: 2015.06.10, 10:43

Переход на 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
Думал на старые хэши паролей, пароли в базе обновил (логин не обновлял) - ситуация не изменилась. Хостер ретировался...

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


Аватара пользователя
webplus
Сообщения: 181
Зарегистрирован: 2012.02.24, 22:05
Контактная информация:

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

Сообщение webplus » 2016.12.03, 19:45

Евгений Емельянов писал(а):День добрый!
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
Как решил проблему напиши?

Евгений Емельянов
Сообщения: 167
Зарегистрирован: 2015.06.10, 10:43

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

Сообщение Евгений Емельянов » 2016.12.03, 20:09

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

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

Евгений Емельянов
Сообщения: 167
Зарегистрирован: 2015.06.10, 10:43

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

Сообщение Евгений Емельянов » 2016.12.03, 20:16

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

nepob
Сообщения: 18
Зарегистрирован: 2016.02.23, 09:25

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

Сообщение nepob » 2016.12.03, 20:17

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

Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

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

Сообщение Onotole » 2016.12.03, 20:18

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

nepob
Сообщения: 18
Зарегистрирован: 2016.02.23, 09:25

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

Сообщение nepob » 2016.12.03, 20:20

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

zelenin
Сообщения: 10492
Зарегистрирован: 2013.04.20, 11:30

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

Сообщение zelenin » 2016.12.03, 20:35

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

nepob
Сообщения: 18
Зарегистрирован: 2016.02.23, 09:25

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

Сообщение nepob » 2016.12.03, 20:40

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

Евгений Емельянов
Сообщения: 167
Зарегистрирован: 2015.06.10, 10:43

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

Сообщение Евгений Емельянов » 2016.12.03, 20:42

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

Аватара пользователя
porcelanosa
Сообщения: 546
Зарегистрирован: 2010.03.16, 04:31
Откуда: Москва

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

Сообщение porcelanosa » 2018.01.17, 18:43

Так решилась проблема у кого-нибудь?
Тоже на одном из виртуальных хостингов столкнулась с такой проблемой

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

[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;
на вирт. хостинге нельзя
mcintosh-club.ru - первый мой сайт с использование Yii //
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы

Ответить