Получение ошибки mysqlnd при использовании Apache Snow Leopard

После установки Snow Leopard я получил следующую ошибку при подключении к удаленному серверу MySQL:

mysqlnd cannot connect to MySQL 4.1+ using old authentication

Я не понимаю, почему он отлично работает с MAMP, когда я запускаю только Apache MAMP, но я получаю эту ошибку при сборке Snow Leopard в Apache. Это потому, что у MAMP есть некоторые файлы MySQL локально? Нужно ли мне устанавливать MySQL локально, когда я пытаюсь подключиться к удаленному серверу? Есть какие-нибудь подсказки относительно того, как исправить это на моей стороне, не возясь с сервером? Желательно только Apache - не хочу устанавливать ничего, что мне не нужно.

Изменить: решение
Оказалось, что PHP не загружает ни один файл php.ini. sudo cp /etc/php.ini.default /etc/php.ini сделал свое дело. Сначала загружался только php-mysqlnd, теперь тоже php-mysql, и все в порядке.

Хм, я ошибся, это ничего не решает.


person Alec    schedule 31.08.2009    source источник


Ответы (3)


Удачи с этим? У меня такая же проблема. Я попытался сбросить пароль, используя аутентификацию до 4.1 и после 4.1, но безрезультатно.

РЕДАКТИРОВАТЬ::

На моем сервере mysql в файле конфигурации была установлена ​​опция использования старых паролей, поэтому результат PASSWORD () и OLD_PASSWORD () вернул тот же 16-значный хэш.

Я запустил SELECT PASSWORD ('mysecret') на другом сервере mysql, который использует новые пароли для получения хэша, затем запустил SET PASSWORD FOR 'myuser' @ '%' = '* THEHASHFROMTHESELECTSTATEMENT' ;.

hth

person Community    schedule 16.09.2009

Попробуйте переустановить свой user-pw на MySQL-сервере. Таким образом, пароль должен быть сохранен в новом формате.

Однако ваша библиотека mysql, поставляемая со Snow Leopard, может быть скомпилирована без поддержки старых паролей.

Даже на живом сервере должно быть нормально создать нового пользователя db, поэтому вы можете проверить с помощью новой учетной записи пользователя, если вы не хотите изменять существующую.

Я не понимаю, почему он отлично работает с MAMP, когда я запускаю только Apache MAMP, но я получаю эту ошибку при сборке Snow Leopard в Apache. Это потому, что у MAMP есть некоторые файлы MySQL локально? Нужно ли мне устанавливать MySQL локально, когда я пытаюсь подключиться к удаленному серверу? Есть какие-нибудь подсказки относительно того, как исправить это на моей стороне, не возясь с сервером? Желательно только Apache - не хочу устанавливать ничего, что мне не нужно.

У MAMP все файлы хранятся отдельно, в его собственных версиях. Вам не нужно запускать локальный MySQL-сервер, если вы хотите подключиться к удаленному серверу. Вам просто нужно установить mysql-библиотеки для PHP.

person ppuschmann    schedule 01.09.2009

вы можете сделать эту строку в своем браузере запросов mysql или что-то в этом роде

SET old_passwords = 0;
UPDATE mysql.user SET Password = PASSWORD('testpass') WHERE User = 'testuser' limit 1;
SELECT LENGTH(Password) FROM mysql.user WHERE User = 'testuser';
FLUSH PRIVILEGES;

примечание: ваше имя пользователя и пароль

после этого он должен работать. Я тоже решил свою

person Elliot Yap    schedule 27.05.2011