我是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上尝试了其他相关问题中提到的其他解决方案,但没有帮助。如果我在某处错了,请纠正我。 问候。
答案 0 :(得分: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)