2011-02-02 6 views
7

Это сводит меня с ума.MySQL-python Не удается подключиться к серверу

У меня есть Python 2.5 и MySQL-python-1.2.3 из .exe, доступного here, установленного на Vista.

Я делал .php страниц в течение последних нескольких недель и был подключен отлично, чтобы проверить их в моем браузере.

[email protected]_connect("localhost", "root", "mypassword") 

Я также использую MySQL командную строку с

mysql.exe -uroot -pmypassword just fine. 

Однако, когда я пытаюсь использовать MySQLDb с

conn = MySQLdb.connect(host = "localhost", user = "root", passwd = "mypassword") 

я

OperationalError: (2003, "Can't connect to MySQL server on 'localhost' (10061)") 

Я проверил что MySQL работает в службах. Я проверил мою конфигурацию MySQL в my.ini и работает на порту = 3306. Я даже удалил и переустановил MySQL 5.1. Я прочитал несколько страниц о проблемах с подключением и ответах на Google, но ничего не уступил. Это должно быть что-то простое, что я забываю, но есть ли у кого-нибудь идеи?

+0

Это сводит меня с ума тоже ... http://stackoverflow.com/search?q=cannot+connect+to+mysql – ajreal

+0

ум перепроверить порт ??? по умолчанию порт 3306 или 10061? – ajreal

ответ

15

Не используйте версию Windows (все мои соответствующие опыты в Linux), но я готов поспорить, что она будет работать, если вы используете 127.0.0.1 вместо localhost.

Редактировать: - немного пояснений.

Во-первых, проверьте данные в mysql. user, для поля host (хотя по умолчанию у вас, вероятно, есть три записи для root, которые охватывают все базы). Скорее всего, ваша проблема вызвана тем фактом, что служба MySQL прослушивает 127.0.0.1:3306, а не localhost: 3306, а ваш файл hosts или другой конфигурационный файл маршрутизации неправильно используется интерпретатором python.

+0

WAH. Я мог бы поклясться, что я читал о местах, где люди говорили, чтобы изменить * на * используя «localhost» с адреса, поэтому я никогда не пытался изменить его на 127.0.0.1. Однако, похоже, это сработало! (По крайней мере, теперь он возвращает ошибку с моим синтаксисом MySQL, который мне придется выяснить.) Я не совсем уверен, почему это сработало, потому что, глядя на таблицу mysql.user, выбор хоста просто возвращает localhost. Огромное спасибо! Я должен был спросить раньше и спасал себя 3 часа. – Amy

+0

проверить вторую часть моего ответа - это будет связано с маршрутизацией – simon

0

Убедитесь, что вы открыли TCP-порт 3306 в своем брандмауэре для соединений.

Также см этот вопрос Can't connect to MySQL server on 'localhost' (10061)

+0

А, я должен был сказать, что я даже дошел до полного отключения моего брандмауэра, пытаясь заставить это работать. Благодарю вас за предложение. – Amy

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