Я знаю, что было много вопросов с такой же заботой, как и у меня, но я надеюсь, что вы можете помочь мне найти другое решение для этого.
Мы используем Symfony 2.5.10, PHP 5.4.44 и MySQL 4.1.20 для нашего проекта.
Когда я пытаюсь войти в систему или какие-либо действия, связанные с подключением к базе данных (например, добавление нового пользователя с помощью команд FOS), я получаю эту ошибку:
SQLSTATE [HY000] [2000] mysqlnd не может подключиться к MySQL 4.1+, используя старую небезопасную аутентификацию. Пожалуйста, используйте инструмент администрирования для reset вашего пароля с помощью команды SET PASSWORD = PASSWORD ('your_existing_password'). Это сохранит новое и более безопасное хэш-значение в mysql.user. Если этот пользователь используется в других сценариях, выполняемых PHP 5.2 или ранее, вам может потребоваться удалить флаг старых паролей из файла my.cnf
Мы уже пробовали установить old_passwords
в my.cnf
на 0, перезапустить mysql, установить новый пароль для пользователя mysql и снова перезапустить mysql, но все тот же. И всякий раз, когда мы запускаем это в окне запроса:
SELECT user, Length(Password) FROM mysql.user;
он по-прежнему показывает 16 как длину пароля пользователя, которого мы используем. А также при проверке переменных и настроек сервера mysql old passwords
ВКЛ (хотя мы уже установили old_password в 0 в my.cnf).
Что может быть неправильным? Я был бы очень признателен за вашу помощь.
Обновление:. Тем временем мы удаляем пароль пользователя db для нас, чтобы иметь возможность доступа к базе данных. Но я все еще ищу другие решения, поскольку те решения, которые я нашел в сети (например, удаление или комментирование old_passwords=1
в my.cnf, установка old_passwords на 0 и установка нового пароля, а затем перезагрузка), не сработало для меня.
Другое обновление: Обычно решение этой проблемы будет устанавливать old_passwords
off в mysql, но затем, как указано в документации PHP,
новая библиотека mysqlnd не считывает конфигурационные файлы mysql (my.cnf/my.ini).
Значит ли это, что установка old_passwords
в 0 в my.cnf
не нужна? Я до сих пор не нашел решения этой проблемы.
Нужно ли обновление на любой из используемых платформ? Заранее спасибо за помощь.