我正在尝试构建虚拟机来开发 Django 应用程序。操作系统是Ubuntu 10.10。我已经安装了大部分东西。最后一部分是让 MySQLdb 与 XAMPP 附带的 MySQL 实例一起使用。
如何让 MySQLdb 默认与 XAMPP MySQL 一起使用?
我发现了这个:Accessing a XAMPP mysql via Python
我理解那里的问题,但该解决方案对我不起作用,因为 Django 处理在幕后创建连接。我也不想为某些应用程序操作 Django。
我尝试以两种不同的方式修改 My.cnf,但它不起作用。我仍然遇到同样的错误。该错误列于此处:
Traceback (most recent call last):
File "test-mysqldb.py", line 4, in <module>
db = MySQLdb.connect( user="root", passwd="", db="faceless001" )
File "/usr/lib/pymodules/python2.6/MySQLdb/__init__.py", line 81, in Connect
return Connection(*args, **kwargs)
File "/usr/lib/pymodules/python2.6/MySQLdb/connections.py", line 170, 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)")
XAMPP 将自身安装到:/opt/lampp/
我正在为此寻找最简单、正确的解决方案。您可以分享的任何背景信息也会有所帮助。
最佳答案
我不明白为什么你不直接通过sudo apt-get install mysql-server
安装MySQL ,但是您的问题的答案似乎是配置 Django 使用指定的套接字代替默认的套接字。
从文档到settings.DATABASES
,在 HOST
下:
If this value starts with a forward slash ('/') and you're using MySQL, MySQL will connect via a Unix socket to the specified socket.
因此,如果您将数据库的 HOST 设置设置为 "/opt/lampp/var/mysql/mysql.sock"
它应该找到相关的 MySQL 套接字。
关于python - Ubuntu 10.10 上默认通过 MySQLdb Python 库访问 XAMPP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4234316/