Назад | Перейти на главную страницу

больше не может получить доступ к MySQL через PHP

У меня есть конфигурация mySQL / PHP, которую я использовал в нескольких системах. Я недавно обновил свою систему до Max OSX 10.6, и теперь она не может подключиться. Я получаю сообщение об ошибке:

mysqlnd не может подключиться к MySQL 4.1+ с использованием старой аутентификации

Я выполнил очевидный поиск в Google, но большинство из них, похоже, посвящено тому, как заставить mysql использовать старый стиль пароля, который, похоже, больше не будет работать. В любом случае я хочу найти лучшее решение, которое позволит мне использовать новый стиль пароля.

Я создаю свой пароль с помощью:

mysql> UPDATE mysql.user SET Password=PASSWORD('mypassword') WHERE User='root';

(или OLD_PASSWORD, это не имеет значения)

и я вхожу в базу данных с помощью:

@mysql_connect($mysqlserver,$username,$password)

where $username is root and $password="mypassword"

Каково ПРАВИЛЬНОЕ решение этой проблемы, поскольку принуждение к использованию старой технологии паролей явно НЕ правильное решение ...

О, я идиот. когда я вручную переустановил пароль root с помощью PASSWORD («пароль»), я не переустанавливал пароль USERS таким же образом, поэтому пароль пользователя все еще был OLD_PASSWORD («пароль»), а наш PHP входит в систему как пользователь, а не root (что, я полагаю, хорошо).

Я вручную переустановил пароль пользователя с PASWORD ("пароль"), и все вроде работает ...

После ручной игры с этими таблицами убедитесь, что вы выполнили FLUSH PRIVILEGES, чтобы MySQL прочитал новые значения.

В общем лучше использовать УСТАНОВКА ПАРОЛЯ для изменения пароля, поскольку это проверяет допустимые значения таблицы. Ручным способом вы легко можете внести неверные данные в пользовательские таблицы.

Попробуйте включить old_passwords = true в my.cnf. Должно помочь;)

Когда вы сбрасываете пароль, запускаете ли вы mysql в безопасном режиме? Я знаю, что иногда mysql очень привередлив в сбросе пароля root. Попробуйте этот пост, если вы еще не ... как ковать