2014-12-21 2 views
0

Я сделал виртуальную среду и установили следующее:Джанго не удается подключиться к локальному серверу MySQL через гнездо «/var/run/mysqld/mysqld.sock

sudo apt-get install libmysqlclient-dev 
sudo pip install MySQL-python 

и моя установка:

DATABASES = { 
'default': { 
    'ENGINE': 'django.db.backends.mysql', 
    'NAME': 'DB_NAME', 
    'USER': 'DB_USER', 
    'PASSWORD': 'DB_PASSWORD', 
    'HOST': 'localhost', 
    'PORT': '3306', 

} 

}

и когда я manage.py syncdb это дает ошибку говоря 2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")

Я не знаю, в чем тут ошибка ... Я искал его ... В основном, я нашел, если я использую virtualenvironment, то вышеприведенного параметра достаточно ... Что здесь не так ???

+0

Уверены, что mysql запущен? Кроме того, вы уверены, что носок находится в /var/run/mysqld/mysqld.sock. Попробуйте запустить «службу mysqld restart» в консоли. –

+0

Я собирался спросить, работает ли mysql, но код определяет порт, что означает, что Django вообще не должен смотреть на файл сокета ... – Fizzadar

+0

он дает ошибку mysqld: нераспознанная служба, когда я выполняю перезапуск mysqld – gamer

ответ

7

Установите сервер MySQL

sudo apt-get install mysql-server 

затем создать базу данных для ваших целей:

mysql -u root -p --execute "create database DB_NAME; grant all on DB_NAME.* to [email protected] identified by 'DB_PASSWORD';" 

, то вы должны быть хорошо.

Я должен указать, что путаница mysql, которая ищет сокет, даже если указана порт, связана с тем, что mysql по умолчанию использует сокет при указании localhost в качестве адреса, если вы хотите использовать tcp/ip, тогда вы должны положить такой адрес, как 127.0.0.1.

+0

работает как очарование ... спасибо – gamer

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