2012-02-08 6 views
2

Я установил mysql и на оболочку python import MySQLdb действительно работает. Я также изменил settings.py как:Не удается подключиться к mysql через django

**DATABASE_ENGINE = 'mysql' 
DATABASE_NAME = '/home/database/my_db.db' 
DATABASE_USER = '' 
DATABASE_PASSWORD = '' 
DATABASE_HOST = ''  
DATABASE_PORT = ''**    

, но когда я проверяю на соединение, он терпит неудачу.

терминал:

>>> from django.db import connection 
>>> cursor = connection.cursor() 

Это дает ошибку как:

OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysql' (2)")

+0

Вы используете xampp ?, в этом случае попробуйте добавить имя пользователя root. Имя базы данных выглядит неправильно. И хост должен быть localhost, если вы пытаетесь локализовать django. И 'DATABASE_ENGINE' должен выглядеть так:« ДВИГАТЕЛЬ »: 'django.db.backends.mysql'. – starcorn

+0

@starcom: если это была проблема с пользователем/паролем, было бы отказано в разрешении, а не «невозможно подключиться». Либо mysql не работает, либо python ищет сокет на неправильной странице. Пространство в '/ var/run/mysql' в дампе ошибок может быть причиной. Вероятно, должен быть '/ var/run/mysql' –

+0

@MarcB: ах его не заметил. – starcorn

ответ

1

Джанго говорят, что его двигатель должен быть https://docs.djangoproject.com/en/dev/ref/settings/#engine «django.db.backends.mysql»

Я думаю, имя базы данных имя базы данных внутри MySQL не путь. Путь только для sqlite. У вас запущен сервер mysql?
USER, PASSWORD требуются. host по умолчанию для localhost port defualts до 3306.

+0

порт по умолчанию 3306 или 8000. И как запустить mysql-сервер ..... –

+0

Я сделал это, подключившись к mysql: $ mysql -u root -p ## подключая mysql ## и меняя settings.py как : DATABASE_ENGINE = 'MySQL' DATABASE_NAME = 'my_db' DATABASE_USER = 'корень' DATABASE_PASSWORD = 'пароль' DATABASE_HOST = '' DATABASE_PORT = '' Здесь my_db база данных создается из MySQL, как: MySQL> CREATE DATABASE my_db.db –

1

Вы используете сервер MySQL? это на:

  • локального хоста (Unix домена сокетов) или
  • локального хоста (TCP), или
  • локального хоста, но не доступен, или
  • другой хост?

также, имя базы данных называется как mysql, понимает это, а не путь к файлу.

+0

для django не нужен локальный сервер. Он просто создает локальный хост: sudo python manage.py runningerver в порту по умолчанию. –

+0

@Sujit абсолютно неверно. Вам нужно запустить MySQL. –

+0

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

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