2013-08-09 3 views
4

при подключении к базе данных mysql в Django, я получаю ошибку.OperationalError: (2002, «Не удается подключиться к локальному серверу MySQL через сокет» /var/run/mysqld/mysqld.sock '(2) »)

  1. Я уверен, что сервер mysql запущен.

  2. /var/run/mysqld/mysqld.sock не существует.

  3. Когда я запустил $ find/-name *.sock -type s, я получаю только /tmp/mysql.sock и некоторые другие нерелевантные выходные данные.

  4. Я добавил socket = /tmp/mysql.sock в /etc/my.cnf. А затем восстановил mysql, вышел из оболочки django и подключился к базе данных mysql. У меня по-прежнему такая же ошибка.

Я много искал, но я до сих пор не знаю, как это сделать.

Любая помощь приветствуется. Заранее спасибо.

Ну, я просто попробовал несколько способов. И это работает. Я сделал следующее.

  1. Добавить socket = /tmp/mysql.sock. Восстановить сервер mysql.
  2. ln -s /tmp/mysql.sock /var/lib/mysqld/mysqld.sock

сегодня я встретил еще одну проблему. Я не могу войти в mysql. Я новичок в mysql. Поэтому я предполагаю, что сервер mysql и клиент используют один и тот же сокет для связи. Я добавляю socket = /var/mysqld/mysqld.sock в [mysqld] [клиент] блок в my.cnf и это wokrs.

+1

Не мог бы вы подключиться локально к серверу MySQL, используя [MySQL CLI] (http://dev.mysql.com/doc/refman/ 5,5/о/mysql.html)? (Что-то вроде этого: 'mysql -u you_user_name -p') –

+0

Каковы ваши настройки' DATABASES'? – twil

+0

Я могу подключиться к серверу mysql с помощью mysql -u user_name -p. Я задал базу данных как рекомендуемый django. – robert

ответ

6

Использования "127.0.0.1", вместо "локального"

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'django', 
     'USER': 'root', 
     'PASSWORD': '', 
     'HOST': '127.0.0.1', 
     'PORT': '3306', 
    } 
} 
Смежные вопросы