Я только что обновил PHP своего разработчика до последней версии, 5.4.5
. Эта машина для разработки подключается к удаленному серверу MySQL , расположенному на общем сервере , который я арендую у хостинговой компании.
Попытка подключиться к моему удаленному серверу MySQL с помощью простого mysql_connect('myserver.com', 'user', 'password')
приводит к следующей ошибке:
Предупреждение: mysql_connect (): mysqlnd не может подключиться к MySQL 4.1+, используя старую небезопасную аутентификацию. Используйте инструмент администрирования для сброса пароля с помощью команды SET PASSWORD = PASSWORD ('your_existing_password'). Это сохранит новое и более безопасное значение хеш-функции в mysql.user. Если этот пользователь используется в других скриптах, выполняемых PHP 5.2 или более ранней версией, вам может потребоваться удалить флаг старых паролей из вашего файла my.cnf в file.php в строке 2.
Просто, как рекомендовано, просто выполните:
SET PASSWORD = PASSWORD('my-password');
Ничего бы не изменил. То же самое касается выполнения
SET SESSION old_passwords=FALSE;
После небольшого поиска я понял, что мне нужен довольно глубокий доступ к серверу MySQL, чтобы решить эту проблему , которого у меня нет. Попытка выполнить этот запрос:
UPDATE mysql.user SET Password=PASSWORD('my-password')
WHERE User='my_user' AND Host='my-server';
FLUSH PRIVILEGES;
Просто выдает мне следующую ошибку:
1142 - команда UPDATE отклонена для пользователя u0112918'@'www10.aname.net 'для таблицы' user '
Запросы на то, чтобы компания выполнила запрос за меня, пока не увенчались успехом. Итак, у меня вопрос: есть ли способ исправить это на стороне клиента, не задействуя сервер MySQL?
1 ответ
Хм, попробуйте выполнить следующий запрос с помощью инструмента, отличного от PhpMyAdmin , например Mysql Workbench, или через оболочку:
SET SESSION old_passwords=0;
SET PASSWORD = PASSWORD('passwordString');
Вам должно быть разрешено изменять свой собственный пароль без прав DML для пользовательской таблицы.
Изменить: поскольку это не решило проблему - когда для базы данных включен "read_only", вам нужны супер-права для изменения (даже вашего собственного) пароля (http://dev.mysql.com/doc/refman/5.5/en/set-password.html)
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.