2014-01-26 4 views
1

Я новичок в материалах Ubuntu Os и Xampp, но хорошо знаю python и django. Недавно я перешел из окон, где я использовал wamp для запуска mysql.I установил Xampp на свой рабочий стол ubuntu вместо того, чтобы отдельно устанавливать Mysql. Проблема в том, что я не могу заставить python подключаться к серверу Mysql, работающему на localhost. У меня установлен соединительный модуль MYSQLdb с моим python 2.7.4. Xampp начинается хорошо, и я могу запустить SQL, введя mysql -u root в terminal.So как, в Джанго manage.py утилиты показывает оболочку клиента базы данных во время работы следующего кода:Проблемы с подключением к серверу Mysql

[email protected]:~/Desktop/testproject$ python manage.py dbshell 
Welcome to the MySQL monitor. 

mysql> 

Но когда я делаю:

>>> import MySQLdb as m 
>>> a=m.connect(user="root",passwd="",db="test_project") 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python2.7/dist-packages/MySQLdb/__init__.py", line 81, in Connect 
    return Connection(*args, **kwargs) 
    File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 187, in __init__ 
    super(Connection, self).__init__(*args, **kwargs2) 
_mysql_exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)") 

Я не могу найти каталог /вар/запуска/туздЫ. У меня есть mysql в /opt/lampp/bin/mysql. Я пробовал другие решения, как упоминалось в других связанных вопросах здесь, в stackoverflow, но без помощи. Исправьте меня, если я где-то не прав. С уважением.

+0

http://stackoverflow.com/questions/11990708/error-cant-connect-to -local-mysql-server-through-socket-var-run-mysqld-mysq –

+0

https://www.google.co.in/search?q=Can%27t+connect+to+local+MySQL+server+through + раструб +% 27/вар/запуска/туздЫ/mysqld.sock% 27 & т.е. = UTF-8 & ае = UTF-8 & RLS = org.mozilla: EN-US: официальный & клиента = Firefox-бета и канал = SB & gws_rd = CR & е = XL 7kUs2XI4uFrgeKo4GgDQ –

ответ

0

Возможно, вы пропустили host, port аргумент.

Аргументы MySQLdb.connect должны соответствовать DATABASES в settings.py.

Например, если предположить следующее в settings.py:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'test_project', 
     'USER': 'root', 
     'PASSWORD': 'secret', 
     'HOST': '192.168.0.1', 
     'PORT': 1234, 
    } 
} 

connect(..) следует читать:

import MySQLdb 
connection = MySQLdb.connect(user='root', passwd='secret', db='test_project', 
          host='192.168.0.1', port=1234) 
+0

Я знаю, что функция connect принимает два аргумента ключевого слова host и port, но реальной проблемой было то, что я установил хост на «localhost», который работает на окнах, но не работает здесь, не знаю почему. Теперь я указал на него '127.0.0.1', он работает красиво. Но, спасибо за указание еще раз. – darxtrix

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