2015-01-23 3 views
1

Работа над приложением питона на Mac (Yosemite OSX 10.10) Я столкнулся с этим вопросом:MySQL-питон макинтош OSX 10,10 отключить безопасный аутентификации

OperationalError: (2049, "Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)") 

С небольшим количеством исследований, казалось, что мой клиент (то есть mysql-python) использует безопасный auth, и у пользователя был пароль, зашифрованный в старом стиле, то есть до pre-4.1.1.

Как я не способы обработки вещей на стороне БД я задавался вопросом, есть ли обходной путь или способ отключить secure_auth на MySQL-питона?

ответ

0

Я нашел лекарство!

Вернее, обходным путем. Из этого post я решил выбрать немного устаревшую версию MySQL и MySQLdb, и это решило проблему.

Вот как я это сделал:

я ранее установленный mysql_python для моего питона и имел версию варева из MySQL установлен.

Я отнял все это.

Я ищу способ установить MySQLdb, ища последнюю стабильную версию с источником.

Я скомпилировал их (последовали за инструкциями here), установил их, а затем я искал стабильную версию MySQL-клиента (сайт MySQL - это лучшее место для этого) и установите версию 5.5, которая идеально подходит моим требованиям.

Я запустил mysql автоматически, а затем перезапустил свой компьютер (но вы можете просто перезапустить apache) и убедитесь, что все пути верны, а право включено в нужные места (вы можете проверить это по ссылке выше) ,

И теперь все работает отлично!

Надеюсь, это поможет.

2

Я адаптируя ответ от here:

В конце концов, вы должны сообщить клиенту, который имеет пароль в старом стиле, чтобы изменить его пароль нового стиля. Old passwords are not secure.

Теперь вы получаете сообщение об ошибке, так как клиент имеет secure_auth, но у них есть старый пароль. Чтобы войти в систему со старым паролем, клиент должен отключить secure_auth на стороне клиента. Как именно вы это делаете, зависит от того, какой клиент вы используете.

Некоторые другие обходные пути можно найти в документации MySQL: Client does not support authentication protocol

+0

Я видел этот ответ, но не было никакого ресурса относительно python, поэтому я вернулся к квадрату. Вы правы о пользователе и его пароле старого стиля, но я не отвечаю за БД и не могу делать/предлагать/предлагать это изменение вообще. – AKFourSeven

+0

Если вы используете MySQL Workbench, на вкладке «Управление подключениями к серверу», «Соединение», «Дополнительно» вы можете установить флажок «Использовать старый протокол проверки подлинности».', а затем он должен работать для вас –

+0

снова Я не управляю mysql, у меня мало свободы с этой стороны, я могу просто звонить в DB через python, который использует mysql-python для вызова в базу данных. – AKFourSeven

Смежные вопросы