连接到Mysql服务器的问题

时间:2014-01-26 07:48:44

标签: python mysql django xampp

我是Ubuntu Os和Xampp相关的新手,但对python和django有很好的了解。我最近从使用wamp运行mysql的Windows转移。我在我的ubuntu桌面上安装Xampp而不是单独安装Mysql。问题是我无法使python连接到在localhost上运行的Mysql服务器。 我的python 2.7.4安装了MYSQLdb连接器模块。 Xampp启动正常,我可以通过在终端中键入mysql -u root来运行SQL。因此,django manage.py 实用程序在运行以下代码时显示数据库客户端shell:

black_perl@ank:~/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)")

我找不到任何目录 / var / run / mysqld 。我在 / opt / lampp / bin / mysql 上有我的mysql。我在stackoverflow上尝试了其他相关问题中提到的其他解决方案,但没有帮助。如果我在某处错了,请纠正我。 问候。

1 个答案:

答案 0 :(得分:0)

也许您错过了hostport参数。

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)